据我了解#' <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/