elisp: захват переменной из внутренней функции

Моя любимая функция:

(defun f (x)
  (lambda (y) (+ x y)))

Затем я ожидаю, что это:

(funcall (f 2) 2)

Чтобы вернуть 4. Но, увы, вместо этого я получил следующее:

Debugger entered--Lisp error: (void-variable x)

Итак, как мне захватить переменную из внутренней функции?

6
задан Ron 16 February 2011 в 17:41
поделиться