;;; -*- lexical-binding: t -*- ;;; ;;; this file: ;;; https://dataswamp.org/~incal/emacs-init/scope.el ;;; ;;; g = global ;;; sd = special/dynamic ;;; ls = lexical/static ;;; v = variable (defvar gsd-v 1) ; 1 (special-variable-p 'gsd-v) ; t (defvar gls-v) (setq gls-v 2) ; 2 (special-variable-p 'gls-v) ; nil (defun fun-lol () (list gsd-v gls-v v) ) (setq lexical-binding nil) (let ((gsd-v 100) (gls-v 200) (v 300) ) (list (list gsd-v gls-v v) (fun-lol) )) ; ((100 200 300) (100 200 300)) (setq lexical-binding t) (let ((gsd-v 100) (gls-v 200) (v 300) ) (list (list gsd-v gls-v v) (fun-lol) )) ; DNC, lexical/static `let' binding v undefined in fun-lol (defun fun-lol-2 () (list gsd-v gls-v) ) (let ((gsd-v 100) (gls-v 200) (v 300) ) (list (list gsd-v gls-v v) (fun-lol-2) )) ; ((100 200 300) (100 200))