为什么(defun boolimplies (a b) (or (not a) b))
被称为
(boolimplies 'a 'b)
返回B
?
即使我没有使用任何布尔值(NIL,T),只是变量名称,它如何得出这个结论?
答案 0 :(得分:5)
虽然Common Lisp中只有t
和nil
是布尔值,但也有generalized booleans.也就是说,所有对象都可以用作真值,只有符号{{1}是假的。您传递的是nil
以外的符号,这些符号都是真的。
(只是为了避免任何可能的混淆:如果您有变量nil
和a
并且想要使用它们的值而不是符号,那么只需将它们传递给它们。(