
21 May
2007
21 May
'07
6:17 a.m.
On Sat, 28 Apr 2007, Hans van Thiel wrote:
Thanks again for the help, and, to follow up, this now does what I need..
-- partitions a list according to an equivalence relation
partition1 :: (a -> a -> Bool) -> [a] -> ([a],[a]) partition1 eq ls = partition ((head ls) `eq`) ls -- partitionBy :: (a -> a -> Bool) -> [a] -> [[a]] partitionBy eq [] = [] partitionBy eq ls = (fst x):(partitionBy eq (snd x)) where x = partition1 eq ls
partitionBy is essentially a List.unfoldr