Faster Command Line Tools in D

cym13 via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun May 28 09:00:55 PDT 2017


On Thursday, 25 May 2017 at 16:19:16 UTC, Jonathan M Davis wrote:
> I wouldn't expect any of the split-related functions to be 
> going away. We often have a function that operates on arrays or 
> strings and another which operates on more general ranges. It 
> may mainly be for historical reasons, but removing the 
> array-based functions would break existing code, and we'd get a 
> whole other set of complaints about folks not understanding 
> that you need to slap array() on the end of a call to splitter 
> to get the split that they were looking for (especially if 
> they're coming from another language and don't understand 
> ranges yet). And ultimately, the array-based functions continue 
> to serve as a way to have simpler code when you don't care 
> about (or you actually need) the additional memory allocations.

I don't think know if people coming from other languages would 
really mind. Of course it would have to be taught onces, 
everything has, but many languages (and I have python especially 
in mind) have been lazifying their standard libraries for years 
now. I think consistency is what brings less questions, not 
diversity where one of the possibilities corresponds to what the 
programmer wants. He'll ask for the difference anyway.

> Also, splitLines/lineSplitter can't actually be written in 
> terms of split/splitter, because split/splitter does not have a 
> way to provide multiple delimeters (let alone multiple 
> delimeters where one includes the other, which is what you get 
> with "\n" and "\r\n"). So, that distinction isn't going away. 
> It's also a common enough operation that having a function for 
> it rather than having to pass all of the delimeters to a more 
> general function is arguably worth it, just like having the 
> overload of split/splitter which takes no delimiter and then 
> splits on whitespace is arguably worth it over having a more 
> general function where you have to feed it every variation of 
> whitespace.
>
> - Jonathan M Davis


More information about the Digitalmars-d-announce mailing list