Tomasz Zielonka wrote:
> On Tue, May 29, 2007 at 02:19:31PM +0200, Tomasz Zielonka wrote:
>   
>> On Tue, May 29, 2007 at 12:15:23PM +0200, Vincent Kraeutler wrote:
>>     
>>> ever the interested amateur, i admittedly remain stumped by fix (there's
>>> evidence i'm not the only one [1])
>>>       
>> The above code is equivalent to
>>
>>     let l = 1 : scanl (+) 1 l in l
>>
>> which is a bit easier to decipher.
>>
>> The rest is maths and the subtleties of lazy evaluation.
>>     
> ... and these are the things you need to focus on to understand this
> code. In this case the use of fix is almost a small syntactic issue -
> you can eliminate it by inlining its definition.
>
> Best regards
> Tomek
>
>
>   
i see that the definition of fix (from Control.Monad.Fix) could not be
any simpler:

> fix f = let x = f x in x

same goes for the type:

Prelude> :t Control.Monad.Fix.fix
Control.Monad.Fix.fix :: (a -> a) -> a

it's just that i find it difficult to get concrete intellectual mileage
out of it.
i can reproduce results for specific examples (and even manipulate them
a bit), but feel like i'm missing something deep yet simple. say, i
would not know where and how to apply it. so obviously true
understanding is still missing. reminds me of my first encounters with
$H \psi = E \psi$. ;-)

most likely, i should just more carefully read the references i cited
myself ;-)

anyhow. if someone has a "pedestrian's guide to the fixed point
operator" lying around, a link would be much appreciated.

kind regards,
v.

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to