Alexander Schmolck <[EMAIL PROTECTED]> writes: > > (defvar *x*) ;; makes it special > > (setf *x* 1) > > (print *x*) ;;-> 1 > > (let ((*x* 2)) > > (print *x*)) ;; -> 2 > > (print *x*) ;; -> 1 > > You seem to think that conflating special variable binding and lexical > variable binding is a feature and not a bug. What's your rationale?
I thought special variables meant dynamic binding, i.e. (defvar *x* 1) (defun f () (print *x*) ;; -> 2 (let ((*x* 3)) (g))) (defun g () (print *x*)) ;; - > 3 That was normal behavior in most Lisps before Scheme popularlized lexical binding. IMO it was mostly an implementation convenience hack since it was implemented with a very efficient shallow binding cell. That Common Lisp adapted Scheme's lexical bindings was considered a big sign of CL's couthness. So I'm a little confused about what Ken Tilton is getting at. -- http://mail.python.org/mailman/listinfo/python-list