On Fri, Jun 10, 2011 at 12:05 PM, Alexander Solla <[email protected]>wrote:
> On Thu, Jun 9, 2011 at 6:04 PM, Felipe Almeida Lessa < > [email protected]> wrote: > >> Something like this? >> >> equivalenceClosure = fix $ \f e -> >> let e' = reflexivity . symmetry . transitivity $ e >> in if e' == e then e else f e' >> >> Cheers, >> >> -- >> Felipe. >> > > I managed something even "clearer". I still have very little intuition > about what's going on, but I had an aha moment -- which I promptly forgot > :0( -- and at least there's a mechanical translation from the iterate > version to the fix one. > > equivalenceClosure :: (Ord a) => Relation a -> Relation a > equivalenceClosure = fix (\f -> reflexivity . symmetry . transitivity) > Cancel that, it's not passing my tests.
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
