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)
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
