El 24/05/16 a las 16:12, Rainer Weikusat <rweikusat@???> escribió:
> It means that any binding of some symbol is globally visible during the
> dynamic lifetime of the scope which established it instead of being
> restricted to code which is lexically contained in this scope.
>
> Contrived example for that:
>
> ; function returning the current value of x + 1
> ;
> (defun 1+x () (1+ x))
> -> 1+x
>
> ; function which binds x to the value passed as argument and
> ; then invokes 1+x
> ;
> (defun 1+v (v)
> (let
> ((x v))
> (1+x)))
> -> 1+v
>
> ; set x to 15
> ;
> (setq x 15)
> -> 15
>
> ; call 1+v with argument 4
> ;
> (1+v 4)
> -> 5
>
> ; call 1+x in the global environment
> ;
> (1+x)
> -> 16
>
> This can be executed via*scratch* buffer which does Lisp evaluation
> upon C-j. I've marked the lines showing return vaues with ->.
>
> 'Lexical scoping' (which works the way 'local variables' usually work in
> other languages) didn't exist in the 'Lisp world' until Scheme came to
> be.
This thread isn't related with evince... It's related with emacs and
lisp. So, can we change the subject of the thread to something like
Emacs and Lisp? :)
Cheers,
Aitor.