在学习Elisp的过程中,我尝试了一些我知道在Scheme中起作用的东西,但我惊讶地发现我无法在elisp中复制它。
;; works in Scheme. result: 5
((if 1 + -) 3 2)
;; doesn't work in Elisp. result: error
((if 1 '+ '-) 3 2)我希望Elisp行的计算值为
(+ 3 2)这份清单的评估结果是5。然而,我得到:
(invalid-function (if t '+ '-))我在这里错过了什么?Elisp不允许这样的行为吗?这可能与计划是一种lisp-1语言,Elisp是lisp-2这一事实有关吗?
发布于 2019-05-31 12:20:59
是的,错误是由于Emacs是一个Lisp-2。这应该是可行的:
(funcall (if 1 '+ '-) 3 2)https://stackoverflow.com/questions/56394727
复制相似问题