灯下 登录
计算机科学 / SICP / 5.1 Designing Register Machines

Exercise 5.1 · 习题

Exercise 5.1: Design a register machine to
compute factorials using the iterative algorithm specified by the following
procedure. Draw data-path and controller diagrams for this machine.

(define (factorial n)

(define (iter product counter)

(if (> counter n)

product

(iter (* counter product)

(+ counter 1))))

(iter 1 1))

练习 5.1:设计一台寄存器机器,用以下过程所规定的迭代算法计算阶乘。为该机器画出数据通路图和控制器图。

(define (factorial n)
(define (iter product counter)
(if (> counter n)
product
(iter (* counter product)
(+ counter 1))))
(iter 1 1))

Racket #lang sicp
(define (factorial n)
 (define (iter product counter)
 (if (> counter n)
 product
 (iter (* counter product)
 (+ counter 1))))
 (iter 1 1))