方案递归 - int 的力量

scheme recursion - power of an int

我正在尝试实现一个函数来判断参数是否为 2 的幂。这就是我所拥有的

   (define (powof2 x) (cond  
   [(and (even? x) (> x 1)) ((powof2 (/ x 2)))] 
   [else (equal?(x 1))])) 

但是当我尝试使用参数 12 运行 时,我收到错误消息: 错误:3 不是函数 [powof2, powof2, powof2, (anon)]

有什么帮助吗?

谢谢!

啊那些括号 ;-)

(define (powof2 x)
  (cond  
    [(and (even? x) (> x 1)) (powof2 (/ x 2))]
    [else (= x 1)]))

请注意,在第 3 行和第 4 行中多了一对括号,在第 4 行中,您应该使用 = 来比较数字。