SICP 全笔记

Exercise 3.53. Without running the program, describe the elements of the stream defined by

(define s (cons-stream 1 (add-streams s s)))

对于 s,第一个元素是 1,其余元素是 s 与 s 的和。所以,第二个元素是 s 的第一个元素与 s 的第一个元素的和,即 2。第三个元素是 s 的第二个元素与第二个元素的和,即 4。第四个元素是 s 的第三个元素与第三个元素的和,即 8,以此类推。

$$ 2^0, 2^1, 2^2 , 2^3, \dots $$ 我们可以输入如下程序到解释器中查看结果

(load "stream.scm")
(load "50-stream-map.scm")

(define (add-streams s1 s2)
  (stream-map + s1 s2))

(define s (cons-stream 1 (add-streams s s)))

; (stream-ref s 1) => 2
; (stream-ref s 2) => 4
; (stream-ref s 3) => 8