> On May 5, 2016, at 1:03 PM, Erica Sadun <[email protected]> wrote:
> 
> On May 4, 2016, at 5:50 PM, Chris Lattner via swift-evolution 
> <[email protected] <mailto:[email protected]>> wrote:
>> 
>> Proposal link: 
>> https://github.com/apple/swift-evolution/blob/master/proposals/0045-scan-takewhile-dropwhile.md
>>  
>> <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
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to