help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Declaring a local dynamic variable?


From: Stefan Monnier
Subject: Re: Declaring a local dynamic variable?
Date: Wed, 25 Sep 2013 14:53:36 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

>> > So in essence Emacs doesn't really have local dynamic variables?
>> Dynamic scoping is inherently global, whether in Elisp or in any other
>> language.

> Not in Common Lisp.

> (defun d1 ()
>   (let ((var 1))
>     (declare (special var))
>     (l1)))

> (defun l1 ()
>   (let ((var 2))
>     (print var)
>     (d2)))

> (defun d2 ()
>   (declare (special var))
>   (print var))

> D1 and D2 use the dynamic variable VAR, L1 uses the lexical variable VAR.

Same in Elisp.  But if d1 and d2 are in two separate packages that know
nothing about each other but who happen to call each other through some
potentially twisted sequence of calls, they will still interfere,
because there's only (globally) one dynamic variable by that name.


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]