
27 Feb
2006
27 Feb
'06
11:26 p.m.
David F.Place wrote:
partList :: Ord k => [([k],v)]->[k]->[(k,[([k],v)])] partList pairs alphabet = reverse . fst $ foldl' f ([],pairs) alphabet where f (result,pairs) l = (result',rest) where (part,rest) = span ((==l) . head . fst) pairs result' = if null part then result else (l,part):result
I would write something like: ... where f (result, pairs) l = case span ((==l) . head . fst) pairs of ([], rest) -> ( result, rest) (part, rest) -> ((l, part):result, rest) -- Lennart