dje*_*lin 1 lisp elisp common-lisp sharp-quote
对我来说,这些运营商似乎做了同样的事情.两者都采用符号并返回与之关联的函数.有什么区别吗?
elisp 评估返回以下内容:
(defun foo(x)(+ 1 x))
foo
(foo 3)
4
#'foo
我也不明白.
常见的lisp和elisp有区别吗?我正在从中学习资源.
Common Lisp:
SYMBOL-FUNCTION无法从词法绑定函数中检索函数.FUNCTION默认情况下引用词法绑定函数.#'foo只是一个较短的符号(FUNCTION foo).
CL-USER 1 > (defun foo () 'foo)
FOO
CL-USER 2 > (flet ((foo () 'bar))
(list (funcall (symbol-function 'foo))
(funcall #'foo)
(funcall (function foo))
(eq (function foo) (symbol-function 'foo))))
(FOO BAR BAR NIL)
CL-USER 3 > (eq (function foo) (symbol-function 'foo))
T
Run Code Online (Sandbox Code Playgroud)