I don't think so. I haven't seen this be the case. A simple example like
this works as expected I think.

#+BEGIN_SRC emacs-lisp
(setq x 4)
#+END_SRC

#+RESULTS:
: 4


#+BEGIN_SRC emacs-lisp
(+ x 9)
#+END_SRC

#+RESULTS:
: 13


So far, I have only seen where this makes some new things possible. e.g.

This will not work unless evaluated with lexical-binding
#+BEGIN_SRC emacs-lisp :results value :lexical yes
;; Graham's alambda
(defmacro alambda (parms &rest body)
  `(cl-labels ((self ,parms ,@body))
     #'self))

(setq
 N
 (alambda (n)
          (if (> n 0)
              (cons
               n
               (self (- n 1))))))

(princ (funcall N 3))
#+END_SRC

#+RESULTS:
| 3 | 2 | 1 |

This just provides a different approach to :var I think.

#+BEGIN_SRC emacs-lisp :lexical '((x . 23))
(print x)
#+END_SRC

#+RESULTS:
: 23

I would be interested to see any counter examples though, where behavior
changes, or stops working.



Adam Porter writes:

> John Kitchin <jkitc...@andrew.cmu.edu> writes:
>
> Forgive my ignorance--I haven't really dug into lexical scoping yet--but
> what is the basic effect will this change have on elisp code blocks?
> Say I'm doing some sort-of literate development and I have some code
> blocks that `setq' here and there, setting vars in the Emacs
> environment.  Will the scope of these vars now be limited to their code
> blocks?  Would I need to disable lexical scoping?  Thanks.


--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu

Reply via email to