特殊符号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)