布尔意味着操作

时间:2015-08-10 05:06:48

标签: boolean lisp common-lisp

为什么(defun boolimplies (a b) (or (not a) b))被称为 (boolimplies 'a 'b)返回B

即使我没有使用任何布尔值(NIL,T),只是变量名称,它如何得出这个结论?

1 个答案:

答案 0 :(得分:5)

虽然Common Lisp中只有tnil是布尔值,但也有generalized booleans.也就是说,所有对象都可以用作真值,只有符号{{1}是假的。您传递的是nil以外的符号,这些符号都是真的。

(只是为了避免任何可能的混淆:如果您有变量nila并且想要使用它们的值而不是符号,那么只需将它们传递给它们。(