PartitionBy (was: Behavior groupBy)

29 Apr
2007
29 Apr
'07
9:39 a.m.
Hello All, As usual, my first attempt could be better.. -- partitions a list according to an equivalence relation import Data.List (partition) partitionBy :: (a -> a -> Bool) -> [a] -> [[a]] partitionBy eq [] = [] partitionBy eq ls = x:(partitionBy eq y) where (x,y) = partition ((head ls) `eq`) ls example> partitionBy (\x y -> (last x) == (last y)) ["abc","bd","bdc","abd"] result> [["abc","bdc"],["bd","abd"]] Of course, any crits would be appreciated, but maybe this will save somebody some time.. Thanks, Hans van Thiel
6597
Age (days ago)
6597
Last active (days ago)
0 comments
1 participants
participants (1)
-
Hans van Thiel