在Common Lisp中使用向量和复数后,我对某些事情感到好奇。也就是说,quote
运算符如何与这些数据结构相关?
例如,当涉及到列表时,以下示例对我来说很简单:
CL-USER> '(1 2)
(1 2)
CL-USER> ''(1 2)
'(1 2)
让我们对矢量做同样的事情:
CL-USER> #(1 2)
#(1 2)
CL-USER> '#(1 2)
#(1 2)
CL-USER> ''#(1 2)
'#(1 2)
复数:
CL-USER> #c (1 2)
#C(1 2)
CL-USER> '#c (1 2)
#C(1 2)
CL-USER> ''#c (1 2)
'#C(1 2)
为了节省空间,我只想说引用字符的行为类似。
我的问题是为什么#
和'#
评估为同一个表达式?这是什么原因?什么是"胆量"这个机制?