[Haskell-cafe] Generalized version of `words'?
maeder at tzi.de
Mon Jun 13 07:34:42 EDT 2005
Dimitry Golubovsky wrote:
> Does there exist a generalized version of the `words' function i. e.
> one that breaks an arbitrary list into parts by an arbitrary predicate?
> splitAt is not what I need.
> I had to write my own:
> -- A version of words, but works with any lists on any predicate.
> parts pred s = case dropWhile pred s of
>  -> 
> s' -> w : parts pred s''
> where (w, s'') = break pred s'
> (just by parameterizing `words' found in Data.List with a predicate
> passed as a parameter).
> In case such a function already exists, what is its name?
In Data.PackedString are splitPS and splitWithPS.
splitPS :: Char -> PackedString -> [PackedString]
The splitPS function splits the input string on each occurrence of the
splitWithPS :: (Char -> Bool) -> PackedString -> [PackedString]
The splitWithPS function takes a character predicate and splits the
input string at each character which satisfies the predicate.
More information about the Haskell-Cafe