Hi Daniel,

On Fri 24 Jul 2009 09:08, Daniel Kraft <d...@domob.eu> writes:

>> It's actually fairly simple, imo. Alpha-equivalence says that
>> (lexical-let ((x a)) x) is the same as (lexical-let ((y a)) y). (Note
>> that this lexical-let corresponds to Scheme's let.) So your program is
>> the same as:
>>
>>> (lexical-let ((y 2))
>>>   y ; -> 2
>>>   (foo) ; -> 1
>>>   (setq y 3)
>>>   y ; -> 3
>>>   (foo) ; -> 1
>>>   (let ((x 4))
>>>     x ; -> 4?
>>>     (foo) ; -> 4
>>>     (setq x 5)
>>>     x ; -> 5
>>>     (foo) ; -> 5
>>>     ) ; end the let
>>>   y ; -> 3?
>>>   (foo) ; -> 4
>>>   )
>>> x ; -> 4
>>> (foo) ; -> 4
>
> Yes of course, my main question was how the inner let is handled, and
> what dynamic values x will attain (the results of (foo)) -- and here's
> this funny stuff that the inner let will be like lexical-let for those
> variables already lexically bound.

Wow, strange. What were they thinking. But if that's the deal, that's
the deal...

Andy
-- 
http://wingolog.org/


Reply via email to