]> git.rkrishnan.org Git - sicp.git/blob - src/sicp/ex3_55.rkt
Lazy version of evaluator and tests.
[sicp.git] / src / sicp / ex3_55.rkt
1 #lang racket
2
3 (define (partial-sums s)
4   (define (partial-sums-iter sum stream)
5     (cons-stream (+ sum (stream-car stream))
6                  (partial-sums-iter (+ sum (stream-car stream))
7                                     (stream-cdr stream))))
8   (partial-sums-iter 0 s))
9
10 #|
11 > (stream-ref (partial-sums (integers-starting-from 1)) 0)
12 1
13 > (stream-ref (partial-sums (integers-starting-from 1)) 1)
14 3
15 > (stream-ref (partial-sums (integers-starting-from 1)) 2)
16 6
17 > (stream-ref (partial-sums (integers-starting-from 1)) 3)
18 10
19 > (stream-ref (partial-sums (integers-starting-from 1)) 4)
20 15
21 |#