Emacs lisp: почему этот sexp вызывает ошибку недействительной функции?
Sexp в вопросе
(((lambda (b)
(lambda (a)
(+ b a))) 3) 5)
который, на мой взгляд, должен оценить8
и в других lisps (например, Racket) это делает, но в elisp вместо этого выдает эту ошибку:
Debugger entered--Lisp error: (invalid-function ((lambda (b) (lambda (a) (+ b a))) 3))
Кажется, он говорит мне, что
((lambda (b)
(lambda (a)
(+ b a))) 3)
Не является допустимой функцией. Это кажется неправильным, потому что, когда я оцениваю это выражение, я получаю
(lambda (a) (+ b a))
который выглядит как действительная функция для меня. У кого-нибудь есть идеи, почему это происходит? Это как-то связано с динамическим определением области?