> On May 6, 2016, at 8:15 PM, Dave Abrahams via swift-evolution > <swift-evolution@swift.org> wrote: > > > on Fri May 06 2016, Matthew Johnson <swift-evolution@swift.org > <mailto:swift-evolution@swift.org>> wrote: > >>> 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. > > Personally, I'm not confident “unfold” would be considered to meet the > utility bar, even if we changed the name of “reduce,” FWIW. > >> Which name do you think best communicates the essence of the >> operation? IMO “fold” does a much better job of this. > > Personally I think “accumulate” does that better than either name, but > it doesn't matter. What matters, IMO, is what more people will be > familiar with.
Fair enough. FWIW, the reason I like fold is that it helps me to visualize the process mentally. > >> >> >>> >>>> 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 <mailto:swift-evolution@swift.org> >> https://lists.swift.org/mailman/listinfo/swift-evolution >> <https://lists.swift.org/mailman/listinfo/swift-evolution> > > -- > Dave > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org <mailto:swift-evolution@swift.org> > https://lists.swift.org/mailman/listinfo/swift-evolution > <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution