真假
特殊符号 T
表示 Common Lisp 中的值 true ,而特殊符号 NIL
表示 false :
CL-USER> (= 3 3)
T
CL-USER> (= 3 4)
NIL
它们在标准中称为常量变量(sic!),因为它们是无法修改其值的变量。因此,你不能将其名称用于正常变量,如下所示,不正确,示例:
CL-USER> (defun my-fun(t)
(+ t 1))
While compiling MY-FUN :
Can't bind or assign to constant T.
实际上,人们可以将它们简单地视为常数,或者作为自我评估的符号。T
和 NIL
也是其他意义上的特色。例如,T
也是一种类型(任何其他类型的超类型),而 NIL
也是空列表:
CL-USER> (eql NIL '())
T
CL-USER> (cons 'a (cons 'b nil))
(A B)