common-lisp 广义布尔
示例
实际上,任何与CommonLisp中的值不同的值都NIL被视为真实值。例如:
CL-USER> (let ((a (+ 2 2)))
(if a
a
"Oh my! 2 + 2 is equal to NIL!"))
4可将此事实与布尔运算符结合使用,以使程序更简洁。例如,上面的示例等效于:
CL-USER> (or (+ 2 2) "Oh my! 2 + 2 is equal to NIL!") 4
宏OR按从左到右的顺序评估其参数,并在找到非NIL值后立即停止并返回。如果所有参数都为NIL,则返回的值为NIL:
CL-USER> (or (= 1 2) (= 3 4) (= 5 6)) NIL
类似地,AND如果所有参数都被评估为非NIL,则宏从左到右评估其参数,并返回最后一个参数的值,否则,一旦发现NIL,立即停止评估,并返回:
CL-USER> (let ((a 2)
(b 3))
(and (/= b 0) (/ a b)))
2/3
CL-USER> (let ((a 2)
(b 0))
(and (/= b 0) (/ a b)))
NIL由于这些原因,AND并且OR可以被认为是更类似于其他语言的控制结构,而不是布尔运算符。
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短