问:如果,如果有的话,是很有用锋利引述lambda
,当,如果有的话,我们一定不锋利引述lambda
?
人们lambda
以三种方式使用:
- 平原:
(lambda (x) x)
- 引:
'(lambda (x) x)
- 引号:
#'(lambda (x) x)
该SO线程讨论了这三种类型,该SO线程说明了为什么不引用(NB:not sharp-quote)lambda
,并且该SO线程还讨论了引用和尖引号之间的区别。
现在,对匿名函数手动节点和文档字符串lambda
注意,lambda
s为自报价:
形式的调用
(lambda ARGS DOCSTRING INTERACTIVE BODY)
是自引用;评估lambda表达式的结果是表达式本身。然后可以将lambda表达式视为一个函数...
因此,似乎(lambda (x) x)
和#'(lambda (x) x)
是等效的,但'(lambda (x) x)
不是等效的(最重要的是,在字节编译时)。
似乎很少有人想用a 来引用lambda
,但我不清楚何时应该(或不应该)用引号引起来:
- 引号
lambda
只是一个风格选择,还是在某些情况下引号实际上有用? - 是否在某些情况下我们不能用尖括号将a括起来
lambda
,即这样做会改变代码的含义?