真假

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

实际上,人们可以将它们简单地视为常数,或者作为自我评估的符号。TNIL 也是其他意义上的特色。例如,T 也是一种类型(任何其他类型的超类型),而 NIL 也是空列表:

CL-USER> (eql NIL '())
T
CL-USER> (cons 'a (cons 'b nil))
(A B)