[racket-dev] `racket/string' extensions
I like it a lot.
[...]
> (string-split str [sep #px"\\s+"])
> Splits `str' on occurrences of `sep'. Unclear whether it should
> do that with or without trimming, which affects keeping a
> first/last empty part. [*1*] Possible solution: make it take a
> `#:trim?' keyword, in analogy to `string-normalize-spaces'. This
> would make `#t' the obvious choice for a default, which means that
> (string-split ",,foo, bar," ",") -> '("foo" " bar")
>
A keyword might be a good idea indeed.
> (list-index list elt)
> Looks for `elt' in `list'. This is a possible extension for
> `racket/list' that would be kind of obvious with adding the above.
> [*3*] I'm not sure if it should be added, but IIRC it was
> requested a few times. If it does get added, then there's another
> question for how far the analogy goes: [*3a*] Should it take a
> start/end index too? [*3b*] Should it take a list of elements and
> look for a matching sublist instead (which is not a function that
> is common to ask for, AFAICT)?
>
Or should it take a comparison operator (e.g., defaulting to equal?) ?
Maybe list-index could be simple (considering the list flat), and
list-index* could return a list of positions in the sublists?
E.g., (list-index* '(a (b (c d) e) f) 'c) -> '(1 1 0)
(list-index* '(a (b (c d) e) f) '(c d)) -> '(1 1)
Btw, from time to time I wish that `remove*' accepted a single element that
is not a list.
I find it a bit cumbersome and not good looking to wrap a single value in a
(list ...).
Since modifying remove* would probably break a few things, maybe a remove+ ?
Laurent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20120419/4400ced9/attachment.html>