[Haskell-cafe] least fixed points above something
Edsko de Vries
devriese at cs.tcd.ie
Thu Mar 19 12:25:34 EDT 2009
I always feel that the compiler should do such optimizations for me :)
On 19 Mar 2009, at 16:21, Neil Mitchell wrote:
>> I've used a similar function myself, but why write it in such a
>> complicated
>> way? How about
>>
>> lfp :: Eq a => (a -> a) -> a -> a
>> lfp f x
>> | f x == x = x
>> | otherwise = lfp f (f x)
>
> I've used a similar function too, but your version computes f x twice
> per iteration, I wrote mine as:
>
> fix :: Eq a => (a -> a) -> a -> a
> fix f x = if x == x2 then x else fix f x2
> where x2 = f x
>
> I find this fix much more useful than the standard fix.
>
> Thanks
>
> Neil
More information about the Haskell-Cafe
mailing list