灯下 登录
计算机科学 / SICP / 5.1.4 Using a Stack to Implement Recursion

Exercise 5.4 · 习题

Exercise 5.4: Specify register machines that
implement each of the following procedures. For each machine, write a
controller instruction sequence and draw a diagram showing the data paths.

Recursive exponentiation:

(define (expt b n)
(if (= n 0)
1
(* b (expt b (- n 1)))))

Iterative exponentiation:

(define (expt b n)

(define (expt-iter counter product)

(if (= counter 0)

product

(expt-iter (- counter 1)

(* b product))))

(expt-iter n 1))

练习 5.4:为下列各过程分别设计寄存器机器。对每台机器,写出控制器指令序列,并画出数据通路图。

递归型求幂:

(define (expt b n)
(if (= n 0)
1
(* b (expt b (- n 1)))))

迭代型求幂:

(define (expt b n)
(define (expt-iter counter product)
(if (= counter 0)
product
(expt-iter (- counter 1)
(* b product))))
(expt-iter n 1))