Andrei Alexandrescu:
> string a = ",a,  bcd, def,gh,";
> foreach (e; splitter(a, pattern(", *"))
>      writeln("[", e, "]");

(I often use xplit() that is like split but yields items lazily, for larger 
strings it's much faster).

A better approach is to fuse the xsplit and such xsplitter function in a single 
lazy generator that can take as a second argument a string or char or RE 
pattern.
A 3rd optional argument can be the max number of splits (so after such max it 
yields all the rest of the string).

You can then add an eager splitter function with the same signature, that 
outputs an array.

Bye,
bearophile

Reply via email to