真假

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