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
