Eva*_*ker 3 scheme bitwise-operators
我对Scheme很新,我试图从头开始自学.我坚持这个问题的语法.我知道如果我想知道一个数字是2的幂,例如在C中,我只会这样做:
return (x & (x - 1)) == 0;
Run Code Online (Sandbox Code Playgroud)
这将返回真或假.我怎样才能将它转换成Scheme中的几个简单行?
因为你正在努力学习这门语言,所以我会给你一个提示.
计划有一个调用的函数(bitwise-and ...)
,其等同于&
在C运算符(也有(bitwise-xor ...)
,(bitwise-not ..)
等等,这些做意料之中的事情).
(这是(bitwise-and ...)
函数的文档)
鉴于此,您能否将您在问题中所写的内容翻译成Scheme代码?
注意:对于这样的问题,在使用Scheme时,你真的不需要求助于按位运算.实际上,你应该编写一个(可能是尾部)递归函数来为你计算.