Why is there no splitBy in the list module?

John Meacham john at repetae.net
Mon Jul 10 18:59:10 EDT 2006


On Mon, Jul 10, 2006 at 02:26:23PM +0200, Christian Maeder wrote:
> Our current (special) version is:
> 
> {- |
>   A function inspired by the perl function split. A list is splitted
>   on a seperator element in smaller non-empty lists.
>   The seperator element is dropped from the resulting list.
> -}
> splitOn :: Eq a => a -- ^ seperator
>         -> [a] -- ^ list to split
>         -> [[a]]
> splitOn x xs = let (l, r) = break (==x) xs in
>     (if null l then [] else [l]) ++ (if null r then [] else splitOn x $
> tail r)

just a note: I find splitBy a much nicer routine to provide.

> splitBy :: (a -> Bool) -- ^ whether char is a seperator
>         -> [a] -- ^ list to split
>         -> [[a]]

        John

-- 
John Meacham - ⑆repetae.net⑆john⑈


More information about the Libraries mailing list