on Fri May 06 2016, Erica Sadun <swift-evolution@swift.org> wrote: > On May 6, 2016, at 6:27 PM, Dave Abrahams via swift-evolution > <swift-evolution@swift.org> wrote: > > on Thu May 05 2016, Erica Sadun > <swift-evolution@swift.org> wrote: > > On May 4, 2016, at 5:50 PM, Chris Lattner via swift-evolution > <swift-evolution@swift.org> wrote: > > Proposal link: > > https://github.com/apple/swift-evolution/blob/master/proposals/0045-scan-takewhile-dropwhile.md > > Sequence.prefix(while:) & Sequence.drop(while:) - These are *accepted* > as > specified in revision 3 of the proposal. > > I'm still a little sad we didn't go for `prefix`/`suffix` or `take`/ > `drop` pairs > that linguistically matched. > > I think building an API family around “prefix” and “suffix” that covers > this and other functionality is a great idea, and would make a great > proposal** > > This whole area needs some design love. Among other things, > > s.prefix(4) > > should be > > s.prefix(ofMaxLength: 4) > > ** though we haven't been able to completely eliminate the moral > equivalent of “drop” from the “dropWhile” function, whatever it's > eventually called, in any of our experiments > > I'm sure that Kevin or I or some other proposalista could put together a quick > fast-track rename request for > > * suffix(n) -> Self.SubSequence // requires `n >= 0`, `n <= count` > * suffix(maxLength: n) -> Self.SubSequence // requires `n >= 0` > * suffix(while: predicate) -> Self.SubSequence > * prefix(n) -> Self.SubSequence > * prefix(maxLength: n) -> Self.SubSequence > * prefix(while: predicate) -> Self.SubSequence
Not *too* quick, please. This area needs some thought and attention. :-) > > > Nonetheless I'm gratified these are hopping into the language. That > > said, I'm going to put on my painters cap to consider selecting some > exterior latex for the feature I was most looking forward to in this > proposal: > > Core team writes: > > unfold(_:applying:) - This addition is *rejected* by the core team as > written, but deserves more discussion in the community, and > potentially > could be the subject of a future proposal. The core team felt that the > utility of this operation is high enough to be worth including in the > standard library, but could not find an acceptable name for it. > “unfold” > is > problematic, despite its precedence in other language, because Swift > calls > the corresponding operation “reduce” and not “fold”. No one could get > excited about “unreduce”. “iterate” was also considered, but a noun is > more > appropriate than an verb in this case. Given the lack of a good name, > the > core team preferred to reject to let the community discuss it more. > > A few thoughts: > > * I'm not sure why a noun is more appropriate than a verb. Reduce > isn't > a noun, > prefix isn't a noun, drop isn't a noun. > > Can't let that one go by; prefix is definitely a noun :-) > > I knew you'd point that out. It's not a noun when it's wearing its "I AM > VERBING" t-shirt. It only ever wears http://www.memidex.com/shirtfront+insert > That aside, the prevailing sentiment is to rename reduce to `fold` and partner > it with `unfold`. > (I personally prefer Chris's `sequence` because I think it better reflects how > more Swift users will > use it (never for;;get; never sur;;render). That's not “unfold,” FWIW. > But I recognize that terms of art have a strength of momentum and > familiarity.) > > -- E > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution -- Dave _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution