我正在用示例阅读elisp文档中的Simple-Lambda
#+begin_src emacs-lisp :session sicp :lexical t (funcall (lambda (a b c) (+ a b c)) 1 (* 2 3) (- 5 4)) #+end_src #+RESULTS: : 8
以下内容也适用
#+begin_src emacs-lisp :session sicp :lexical t ((lambda (a b c) (+ a b c)) 1 (* 2 3) (- 5 4)) #+end_src #+RESULTS: : 8
这让我感到困惑,elisp是lisp-2样式,因此,在评估
(lambda (a b c) (+ a b c))
时,解释器将查看块的单元格以定义对象,因此该文档的演示有必要调用funcall
(funcall (lambda (a b c) (+ a b c)) 1 (* 2 3) (- 5 4))
尽管如此,它是否可以在没有funcall的情况下使用?
((lambda (a b c) (+ a b c)) 1 (* 2 3) (- 5 4))
另外,lambda不是自评估形式
通常写数字,字符,字符串,甚至是向量在Lisp代码中,利用了他们自我评估的事实。
[我正在用示例#+ begin_src emacs-lisp:session sicp:lexical t阅读elisp文档中的Simple-Lambda(funcall(lambda(abc)(+ abc))1(* 2 3)(-5 4)) #+ end_src#+ ...
Elisp对于直接调用lambda
表单有特殊情况。