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 given Char. splitWithPS :: (Char -> Bool) -> PackedString -> [PackedString] The splitWithPS function takes a character predicate and splits the input string at each character which satisfies the predicate. _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
