I found a nice idiom for a graph algorithm where the pairs of nodes 
representing links could be merged into node lists by something like:
    ns = nub $ map fst  g    --head nodes
    ne = nub $ map snd g   -- tail nodes

And found a nicer approach:
   (ns,ne) = (nub***nub) unzip g
Or perhaps:
   (ns.ne) = bimap nub nub $ unzip g    -- from Control.Bifunctor

The SO reference I saw described bimap as a way to map a function over a pair, 
and it seemed like a great match, but I cannot find the bimap function, and 
cabal reports no package Control.Bifunctor.
??
-------------------------------------------------------
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to