I definitely think we should stick with `all` and an appropriate argument 
label. It’s a term of art and the label makes it perfectly clear what to expect.
That said, `all(match)` and `all(equal)` sound to me like they expect an object 
to compare each against (func all(equal needle: Element))
I suggest something like `all(pass:)`. 

> On Apr 5, 2017, at 4:34 PM, Brandon Trussell via swift-evolution 
> <[email protected]> wrote:
> 
> I retract my gripes on the original names also.  The argument labels make the 
> intent of the method clear. 
> 
> On Wed, Apr 5, 2017 at 11:23 AM, Thorsten Seitz via swift-evolution 
> <[email protected] <mailto:[email protected]>> wrote:
> +1
> 
> Am 03.04.2017 um 10:29 schrieb Daniel Duan via swift-evolution 
> <[email protected] <mailto:[email protected]>>:
> 
>> I want to retract my nitpickings on argument labels; `all(equal:)` and 
>> `all(match:)` are the best names for these methods.
>> 
>> things all match condition?
>> things all equal value?
>> 
>> If we accept `all` as a term of art (which I think we should), along with 
>> these labels the use site are very readable!
>> 
>>> On Mar 31, 2017, at 6:38 PM, Daniel Duan via swift-evolution 
>>> <[email protected] <mailto:[email protected]>> wrote:
>>> 
>>> nit: should these names be `all(matching)`/`all(equalTo)` per API Design 
>>> Guidelines?
>>>> On Mar 31, 2017, at 8:28 AM, Ben Cohen via swift-evolution 
>>>> <[email protected] <mailto:[email protected]>> wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> A short proposal for you as part of the algorithms theme. Hopefully 
>>>> non-controversial, aside from the naming of the method and arguments, 
>>>> about which controversy abounds. Online copy here: 
>>>> https://github.com/airspeedswift/swift-evolution/blob/9a778e904c9be8a3692edd19bb757b23c54aacbe/proposals/0162-all-algorithm.md
>>>>  
>>>> <https://github.com/airspeedswift/swift-evolution/blob/9a778e904c9be8a3692edd19bb757b23c54aacbe/proposals/0162-all-algorithm.md>
>>>> 
>>>> 
>>>> Add an all algorithm to Sequence
>>>> 
>>>> Proposal: SE-NNNN <>
>>>> Authors: Ben Cohen <https://github.com/airspeedswift>
>>>> Review Manager: TBD
>>>> Status: Awaiting review
>>>> Introduction
>>>> 
>>>> It is common to want to confirm that every element of a sequence equals a 
>>>> value, or matches a certain criteria. Many implementations of this can be 
>>>> found in use on github. This proposal adds such a method to Sequence.
>>>> 
>>>> Motivation
>>>> 
>>>> You can achieve this in Swift 3 with contains by negating both the 
>>>> criteria and the result:
>>>> 
>>>> // every element is 9
>>>> !nums.contains { $0 != 9 }
>>>> // every element is odd
>>>> !nums.contains { !isOdd($0) }
>>>> but these are a readability nightmare. Additionally, developers may not 
>>>> make the leap to realize contains can be used this way, so may hand-roll 
>>>> their own for loop, which could be buggy, or compose other inefficient 
>>>> alternatives:
>>>> 
>>>> // misses opportunity to bail early
>>>> nums.reduce(true) { $0.0 && $0.1 == 9 }
>>>> // the most straw-man travesty I could think of...
>>>> Set(nums).count == 1 && Set(nums).first == 9
>>>> Proposed solution
>>>> 
>>>> Introduce two algorithms on Sequence which test every element and return 
>>>> true if they match:
>>>> 
>>>> nums.all(equal: 9)
>>>> nums.all(match: isOdd)
>>>> Detailed design
>>>> 
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> 
> 
> 
> -- 
> Brandon
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to