さかもとのブログ

つらつらと

SICP演習問題3.53~3.55

遅延すげぇと思った.

;;exercise3.53
(define s (cons-stream 1 (add-streams s s)))
;=> 1,2,4,8,16,....

;;exercise3.54
(define (mul-streams m1 m2)
  (stream-map * m1 m2))

(define factorials
  (cons-stream 1 (mul-streams factorials
                              (integers-starting-from 0))))
(stream-ref factorials 4)

;;exercise3.55
(define (partial-sums stream)
  (cons-stream
   (stream-car stream)
   (add-streams (stream-cdr stream)
                (partial-sums stream))))

(define test (partial-sums integers))
(stream-ref test 2)