SICP练习1.16,我的bug在哪里,因为它看起来对我来说

Dav*_*ave 2 scheme sicp

我刚刚开始阅读这本书以获得乐趣; 我希望这是家庭作业,但我永远不能参加麻省理工学院,而且还有很多人比我更聪明.:p

fast-exp应该找到b ^ n,即4 ^ 2 = 16,3 ^ 3 = 27

(define (fast-exp b n)
  (define (fast-exp-iter n-prime a)
    (cond ((= n-prime 1) a)
          ((= (remainder n-prime 2) 1) (fast-exp-iter (- n-prime 1) (* a b)))
          (else (fast-exp-iter (/ n-prime 2) (* a b b)))))
  (fast-exp-iter n 1))

fast-exp 4 2; Expected 16, Actual 2
Run Code Online (Sandbox Code Playgroud)

Jon*_*erg 5

你忘了打电话给快速曝光.相反,您评估了三个独立的原子.要实际评估快速exp为4到2,你必须写

(fast-exp 4 2)
Run Code Online (Sandbox Code Playgroud)