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

Reply via email to