> On May 6, 2016, at 7:30 PM, Dave Abrahams via swift-evolution > <swift-evolution@swift.org> wrote: > > > on Fri May 06 2016, Cole Campbell <swift-evolution@swift.org> wrote: > >> I don't know if it's considered too late at this point to rename 'reduce', >> but >> I'll add an enthusiastic +1 to renaming it to 'fold' and adding 'unfold'. >> 'Fold' >> is just as obvious a name as 'reduce', IMO (actually I even prefer >> it). > > It's not, IMO. “Reduce” was chosen deliberately over “fold” because we > think it is more in “common currency” among programmers, in no small > part to the notice that MapReduce has gotten.
I was guessing this was the rationale. But if it’s not too late and “fold” solves the “unfold” naming problem maybe we that balances out the equation. Which name do you think best communicates the essence of the operation? IMO “fold” does a much better job of this. > >> I think changing it now with other source-breaking changes is better >> than moving forward with 'reduce' and a corresponding function with a >> confusing name. Fold/unfold would fit in beautifully with the >> prefix/suffix pairings already in the standard library. >> >> Cole >> >> On May 6, 2016, at 1:29 AM, David Hart via swift-evolution >> <swift-evolution@swift.org> wrote: >> >> If we are discussing naming changes to reduce, here's my personal opinion: >> >> * When I first encountered it, I understood exactly what it did because I >> knew that term of art. If it was named sequence, I would have been >> confused. >> * If we are discussing name changes, I'd personally vote to change it to >> fold. It is the other term of art used for it, and it makes unfold work. >> >> David >> >> On 05 May 2016, at 22:39, Chris Lattner via swift-evolution >> <swift-evolution@swift.org> wrote: >> >> On May 5, 2016, at 1:03 PM, Erica Sadun <er...@ericasadun.com> >> 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.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. >> >> I’m not a naming guru, but my understanding is that ‘reduce’ was >> picked >> because it was term of art (like map), which is what allowed the >> misuse >> of a verb. >> >> One idea that came out of the core team discussion was something like: >> >> sequence(from: 0) { $0 += 42 } >> >> Since it returns a sequence. >> >> -Chris >> >> _______________________________________________ >> swift-evolution mailing list >> swift-evolution@swift.org >> https://lists.swift.org/mailman/listinfo/swift-evolution >> >> _______________________________________________ >> swift-evolution mailing list >> swift-evolution@swift.org >> https://lists.swift.org/mailman/listinfo/swift-evolution >> >> _______________________________________________ >> 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 _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution