Hi Immanuel,

immanuel <immanuel.litzr...@gmail.com> writes:

> #+BEGIN_SRC emacs-lisp :lexical t :tangle elisp.el
> (defun lex-p ()
>   "Return t if lexical binding is in effect."
>   (interactive)
>   (let (lex
>         _lex-p)
>     (let ((lex t))
>       (setq _lex-p
>             (lambda ()
>               lex)))
>     (if (funcall _lex-p)
>         (message "lexical binding")
>       (message "no lexical binding"))))
>
> (lex-p)
> #+END_SRC
>
> When evaluating this code block with C-c C-c I get lexical binding.
> When tangling it or with org-babel-load-file I get no lexical
> binding.

You can declare lexical-binding in the source block, like this:

#+BEGIN_SRC emacs-lisp :lexical t :tangle elisp.el
;;; elisp.el -*- lexical-binding: t; -*-

(defun lex-p ()
  "Return t if lexical binding is in effect."
  (interactive)
  (let (lex
        _lex-p)
    (let ((lex t))
      (setq _lex-p
            (lambda ()
              lex)))
    (if (funcall _lex-p)
        (message "lexical binding")
      (message "no lexical binding"))))

(lex-p)
#+END_SRC

#+RESULTS:
: lexical binding

-- 
 Bastien

Reply via email to