On Thu, Apr 19, 2012 at 8:21 AM, Eli Barzilay <e...@barzilay.org> wrote: > > Two hours ago, Laurent wrote: >> One string function that I often find useful in various scripting >> languages is a `string-split' (explode in php). It can be done with >> `regexp-split', but having something more along the lines of a >> `string-split' should belong to a racket/string lib I think. Plus >> it would be symmetric with `string-join', which already is in >> racket/ string (or at least a doc line pointing to regexp-split >> should be added there). > > If you mean something like this: > > (define (string-split str) (regexp-match* #px"\\S+" str)) > > ? > > If so, then I see a much weaker point for it -- unlike other small > utilities, this one doesn't even compose two function calls.
It composes one function call (with an extremely complex API) with one domain-specific language (that lots of people don't know/understand/use) into one extremely simple but useful function. > The very weak point here is if you want a default argument that > specifies the gaps to split on rather than the words: > > (define (string-split str [sep #px"\\s+"]) > (remove* '("") (regexp-split sep str))) > > but that *does* use regexps, so I don't see the point, still... Note that (string-split str ";") works given that implementation, which I think makes it both easy-to-understand and useful. -- sam th sa...@ccs.neu.edu _________________________ Racket Developers list: http://lists.racket-lang.org/dev