计划中的独家OR

Jef*_*rth 6 lisp logic scheme

计划中的独家或功能是什么?我试过xor^,但两者给我一个未绑定本地变量错误.

谷歌搜索一无所获.

And*_*rew 9

我建议你使用(not (equal? foo bar))if if not equals works.请注意,您的情况可能会有更快的比较器,例如eq?

  • Scheme是一种相当简约的语言.来自R <sup> 5 </ sup> RS:"编程语言的设计不应该通过功能顶部的打桩功能,而是通过消除使得其他功能显得必要的弱点和限制." 因此,其他语言提供了很多东西,Scheme只提供构建块.任何给定的Scheme实现都可以提供更完整的库,SRFIs http://srfi.schemers.org/帮助标准化核心语言的一些扩展. (5认同)

Dal*_*und 9

据我所知,从R6RS(最新的方案定义)来看,没有预定义的独占或操作.但是,xor相当于not equals布尔值,所以如果没有内置函数,它就很容易自己定义.

假设参数被限制在方案布尔值#f#t,

(define (xor a b)
  (not (boolean=? a b)))
Run Code Online (Sandbox Code Playgroud)

会做的.


Eli*_*lay 7

如果你的意思是两个整数的按位xor,那么每个Scheme都有它自己的名字(如果有的话),因为它没有任何标准.例如,PLT具有这些按位功能,包括bitwise-xor.

(呃,如果你谈论布尔值,那么,not&or是吧...)


dan*_*ith 6

一种不同风格的答案:

(define xor
  (lambda (a b)
    (cond
      (a (not b))
      (else b))))   
Run Code Online (Sandbox Code Playgroud)