使用listp测试列表,但是(listp nil)返回true

时间:2014-11-21 23:14:04

标签: common-lisp

在GNU Clisp 2.49上,(listp nil)返回true。有人能解释一下吗搜索找到this question的答案表明该表达式应返回NIL。

1 个答案:

答案 0 :(得分:4)

在Common Lisp listp中返回T列表。 nil是空列表,因此(listp nil)TNIL也可以写为()

CL-USER 38 > (eq (read-from-string "()")
                 (read-from-string "NIL"))
T

在Common Lisp中nil有多个用途:NIL包中名为COMMON-LISP的符号,空列表,布尔值(或广义布尔值)表示false,以及空类型的名称。