Hi Everybody,

I have a function which computes a fixed point in terms of iterate:

equivalenceClosure :: (Ord a) => Relation a -> Relation a
equivalenceClosure = fst . List.head                -- "guaranteed" to
exist
                   . List.dropWhile (uncurry (/=))  -- removes pairs that
are not equal
                   . U.List.pairwise (,)            -- applies (,) to
adjacent list elements
                   . iterate ( reflexivity
                             . symmetry
                             . transitivity
                             )

Can this function be written in terms of fix?  It seems like there should be
a transformation from this scheme to something with fix in it, but I don't
see it.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to