lisp - lisp 中 "#'"的行为

标签 lisp common-lisp

据我了解#' <object>(function <object>) 的缩写.

但是我在使用 #' 时注意到不同的行为在应用函数中。

例子

(apply '+ '(1 2)) => Works and give 3
(apply (function +) '(1 2 ) ) => 3 

但是

(apply '# '(1 2)) => Err!! 

最佳答案

reference 中所述:

The notation #'name may be used as an abbreviation for (function name).

请注意,使用的语法是 #',而不是 '#,这只是引用符号 # 的一种方式,因为 'a 等同于 (quote a)

所以你应该使用:

(apply #'+ '(1 2))

通常,字符 # 后跟一个字符对于输入值具有特殊含义。例如 #\ 用于读取字符(如 #\Space),#( 用于读取向量,(如 #(1 2 3)), 等等

关于lisp - lisp 中 "#'"的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44428600/

相关文章:

list - 有没有办法就地提取列表的所有元素

lisp - 处理列表和附加值的开始方案 (LISP)

Lisp括号问题

common-lisp - 格式指令或一个衬垫来截断长字符串?

lisp - 在 Common Lisp : is the function called once, 中应用还是对列表的每个元素应用一次?

database - lisp 和编写一个简单的数据库

list - 方案:返回一个表达式的所有元素,可以使用car和cdr的任意组合得到

list - 暂停和恢复对两个列表的迭代?

common-lisp - 如何在 Hunchentoot 或 Clack 中启用 CORS,或者如何添加特定标题?

linux - 如何在 Redhat Linux 中安装 CLISP