
9 Jun
2011
9 Jun
'11
10:46 p.m.
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.