Hi Kevin,

“take" and “skip” are fine as free function names. As method names, they are a 
step back from following the API Guidelines (“non-mutating methods should read 
as noun phrases”).

- Daniel

> On Dec 29, 2015, at 11:40 AM, Kevin Ballard via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> On Mon, Dec 28, 2015, at 04:23 PM, Kevin Ballard wrote:
>> That said, `droppingFirst` sounds pretty weird to me. "drop" (and the 
>> related verb "take" that we're not using) has precedent in multiple 
>> languages (Rust and Haskell come to mind) to mean "return a new sequence 
>> that skips the first N elements". And I'm not aware of any language that 
>> sets precedent for the verb "drop" to mean "mutate the receiver".
> 
> Hmm, I just took a look, and while Rust does use "take", it actually doesn't 
> use "drop" (but Haskell does). Instead it uses "skip", which seems like a 
> good candidate if we're going to rename this. I'm tempted to say we should 
> use "take" instead of "prefix" as well, because `seq.prefix(3)` isn't 
> actually immediately obvious what it does (as the verb "prefix" usually means 
> to add onto the front, not to take the front). And we can use "takeLast" for 
> "suffix" (neither Rust nor Haskell appears to have an equivalent of takeLast; 
> I believe Rust doesn't because none of its iterator adaptors use 
> dynamically-allocated memory, and I think Haskell expects you to just do 
> `reverse . take n . reverse`). Although I do notice Haskell has a function 
> dropWhileEnd that drops the suffix, which suggests "takeEnd" and "dropEnd" 
> here.
> 
> Which is to say, if we're going to rename these methods, my vote is:
> 
> prefix -> take
> suffix -> takeEnd or takeLast
> dropFirst -> skip
> dropLast -> skipEnd or skipLast
> 
> -Kevin Ballard
> _______________________________________________
> 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

Reply via email to