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/