[racket-dev] `string-split'
Just now, Laurent wrote:
> 1. Laurent: Does this make more sense?
>
> Yes, this definitely makes more sense to me. It would then treat
> (string-split "aXXbXXXXy" "X") just like the " " case.
>
> Although if you want to find the columns of a latex line like "x &&
> y & z" you will have the wrong result. Maybe use an optional
> argument to remove the empty strings? (not sure)
(This complicates things...)
First, I don't think that there's a need to make it able to do stuff
like that -- either you go with regexps, or you use combinations like
(map string-trim (string-split "x && y & z" "&"))
> 4. Related to Q3: what does "xy" as that argument mean exactly?
> a. #rx"[xy]"
> b. #rx"[xy]+"
> c. #rx"xy"
> d. #rx"(?:xy)+"
>
> Good question. d. would be the simplest case for newbies, but
> b. might be more useful. I think several other languages avoid this
> issue by using only one character as the separator.
The complication is that with " " or " \t" it seems that you'd want b,
and with "&" you'd want c. (Maybe even make "&" equivalent to
#rx" *& *" -- that looks like it's too much guessing.)
And you're also making a point for:
e. Throw an error, must be a single-character string.
BTW, this question is important because it affects other functions, so
I'd like to resolve it before doing anything.
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!