scheme recursion - int的强大功能

时间:2015-11-01 15:59:39

标签: scheme

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

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

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

任何帮助?

谢谢!

1 个答案:

答案 0 :(得分:2)

啊那些括号; - )

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

请注意,在第3行和第4行,您有一对额外的括号,在第4行,您应该使用=来比较数字。