(define xor
(lambda (x y)
(if (boolean=? x y)
#f
#t)))
它是如何工作的? 我不明白
答案 0 :(得分:4)
让我们来看看xor
' truth table:
x xor y
T F T ; x and y are both true, x xor y is false
T T F ; x and y are different, x xor y is true
F T T ; x and y are different, x xor y is true
F F F ; x and y are both false, x xor y is false
换句话说:如果x
和y
都相同,则xor
为false。但如果x
和y
不同,则xor
为真。而这正是这个Scheme代码所说的:
(if (boolean=? x y) ; are x and y equal?
#f ; then xor is false
#t) ; otherwise xor is true