【SICP练习题】127 练习3.58
【SICP练习】127 练习3.58
练习3-58
原文
Exercise 3.58. Give an interpretation of the stream computed by the following procedure:
(define (expand num den radix)
(cons-stream
(quotient (* num radix) den)
(expand (remainder (* num radix) den) den radix)))
(Quotient is a primitive that returns the integer quotient of two integers.) What are the successive elements produced by (expand 1 7 10) ? What is produced by (expand 3 8 10) ?
分析
(expand 1 7 10)
=> (quotient (* 1 10) 7)
=> 1
=> (expand (remainder 10 7) 7 10)
=> (quotient (* 3 10) 7)
=> 4
=> (expand (remainder 30 7) 7 10)
=> (quotient (* 2 10) 7)
=> 2
……
……
=> 1 4 2 8 5 7 4 2 8 5 7 ...
(expand 3 8 10)
……
……
=> 3 7 5 0 0 0 ...