Использование лямбда-значения из функции в качестве первого элемента списка

Я читаю «Парадигмы программирования искусственного интеллекта» Питера Норвига и сталкиваюсь с проблемой, которую не могу решить самостоятельно (это мое введение в Лисп). Проблема, правда, довольно небольшая, но, очевидно, не та, которую мой маленький мозг может решить.

Почему, когда значение функции является лямбда, использование этой функции в качестве первого элемента списка является ошибкой. Например:

Lisp:

(defun some-func ()
  #'(lambda (x) x))

;; At REPL
;; Does not work
> ((some-func) 1)
;; Does work
> ((lambda (x) x) 1)
;; Also works
> (funcall (some-func) 1)

Надеюсь, это имеет смысл!

7
задан Rainer Joswig 6 November 2017 в 07:09
поделиться