gpt4 book ai didi

lisp - 尖引号 (#') 与符号功能有何不同?

转载 作者:太空宇宙 更新时间:2023-11-03 18:49:38 25 4
gpt4 key购买 nike

对我来说,这些运算符似乎做同样的事情。两者都接受一个符号并返回与其关联的函数。有什么不同吗?

elisp 评估返回以下内容:

(defun foo (x) (+ 1 x))
foo
(foo 3)
4
#'foo

我也不明白。

另外common lisp和elisp有区别吗?我正在从任何一个资源中学习。

最佳答案

Common Lisp:

SYMBOL-FUNCTION 无法从词法绑定(bind)函数中检索函数。 FUNCTION 默认引用词法绑定(bind)的函数。 #'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

关于lisp - 尖引号 (#') 与符号功能有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29320629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com