Why splitter() doesn't work?

Mehrdad wfunction at hotmail.com
Sun Oct 14 13:13:28 PDT 2012


On Sunday, 14 October 2012 at 20:09:44 UTC, Peter Alexander wrote:
> Well, for example:
>
> splitter("hello world", ' ')
>
> gives
>
> ["hello", "world"]
>
> The splits are slices of the original range.
>
> splitter could allocate new ranges, but if you want that 
> behaviour then it's better to specify it manually:
>
> chain(repeat("a").take(5), 
> repeat("b").take(5)).array().splitter("b");
>
> That works, giving:
>
> [["a", "a", "a", "a", "a"], [], [], [], [], []]
>
> I wonder if a better design for splitter would automatically 
> allocate an array when the input range doesn't support slicing?


Oh I didn't realize that, it's because it wants to slice the 
original range...

Yeah, I think that might not be such a bad idea. It should be 
possible to slice infinite ranges too, after all.


More information about the Digitalmars-d mailing list