let over lambda doesn't seem to work in elisp

Viewed 31

In Common Lisp this sort of thing works fine

(let ((x 7))
  (defun g (y) (* y x)))

(g 16)

In elisp this errors saying x is not defined as if the lexical closure did not happen. This is something I have not encountered in other lisps. What is happening with this?

1 Answers

Ah, I see. It works after

(setq lexical-binding t)
Related