simonmarhaskell:
> >I guess the problem with the splitWith thing is that it's a slippery
> >path that leads right up to full-on parsers.
>> Exactly, and this is why we didn't reach a concensus last time.
>> Would someone like to make a concrete proposal (with code!) for 2-3
> functions we could reasonably add to Data.List?
No parsers!
I vote for this, currently implemented in Data.ByteString:
-- | split on characters
split :: Char -> String -> [String]
-- | split on predicate *
splitBy :: (Char -> Bool) -> String -> [String]
and
-- | split on a string
tokens :: String -> String -> [String]
Question over whether it should be:
splitBy (=='a') "aabbaca" == ["","","bb","c",""]
or
splitBy (=='a') "aabbaca" == ["bb","c"]
I argue the second form is what people usually want.
-- Don