我建议你使用(not (equal? foo bar))if if not equals works.请注意,您的情况可能会有更快的比较器,例如eq?
据我所知,从R6RS(最新的方案定义)来看,没有预定义的独占或操作.但是,xor相当于not equals布尔值,所以如果没有内置函数,它就很容易自己定义.
假设参数被限制在方案布尔值#f和#t,
(define (xor a b)
(not (boolean=? a b)))
Run Code Online (Sandbox Code Playgroud)
会做的.
一种不同风格的答案:
(define xor
(lambda (a b)
(cond
(a (not b))
(else b))))
Run Code Online (Sandbox Code Playgroud)