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]> wrote: > +1 > > Am 03.04.2017 um 10:29 schrieb Daniel Duan via swift-evolution < > [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]> 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]> 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/9a778e904c9be8a3692edd19bb757b > 23c54aacbe/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] > https://lists.swift.org/mailman/listinfo/swift-evolution > > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution > > -- Brandon
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
