Я чрезвычайно новичок в lisp, имел предыдущий опыт работы с функциональным программированием (Haskell, SML). Почему этот код возвращает 14, а не 10 (т. Е. 1 + 2y + 3 + 1)?Понимание выражения «let» в LISP
(defvar x 1)
(defun g (z)
(+ x z))
(defun f (y)
(+ (g 1)
(let ((x (+ y 3)))
(g (+ y x)))))
(f 2)
Спасибо большое! :) – tomooka
Откуда вы знаете, что это elisp? Это действительно общепринятое. – Sylwester
@Sylwester: Я не знаю, что это elisp, но это была первая страница документации, которую я нашел, которая объясняла динамическое связывание лаконично. –