布尔运算

Boolean implies operation

为什么 (defun boolimplies (a b) (or (not a) b)) if called as (boolimplies 'a 'b) return B?

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

虽然在Common Lisp中只有tnil是布尔值,但也有generalized booleans.,即所有对象都可以作为真值,只有符号nil 是错误的。您正在传递 nil 以外的符号,这些符号是正确的。

(只是为了避免任何潜在的混淆:如果您有变量 ab 并且想使用它们的值而不是符号,只需将它们不加引号即可。)