nil和t1) 名为‘nil’的符号 2) 逻辑真值false 3) 空表(具有零个成员的表)
当它被用作变量时,nil的值总是nil。
对于Lisp读取器而言,‘()’和‘nil’是相等的,它们代表同样的Lisp对象,即符号nil,只所以采用不同的方式书写,主要是从读者的
角度考虑,在Lisp读取器读取了‘()’或‘nil’后,没有办法知道用户到底是用哪种形式编写的。
在本文档中,我们在需要强调空表时,将用()表示,而当我们强调逻辑真值false时,将用false表示,这也是一种好的Lisp编程惯例。
(cons 'foo ()) ; 强调空表 (setq foo-flag nil) ; 强调真值false
在需要真值的上下文中,所有非nil的值都被当做true 对待;然而推荐用t来表示真值中的true 。当你需要选择一个表示真值
true的值时,如果没有其他的考虑,建议使用t,符号t永远具有值t。
在Emacs Lisp中,nil和t是求值是自身的特殊符号,因此你可以不必引用(译注:引用是Emacs Lisp中的一个重要概念,对应于quote函数,
后面会讲到)它们而把它们当做常量使用,尝试改变它们的值将得到setting-constance错误,详情请参考See Constant Variables,。