Streams
Shayna Kothari
Streams
(define (naturals n)
(cons n (naturals (+ n 1)))
Streams
However… Scheme does support streams!
(define (naturals n)
(cons-stream n (naturals (+ n 1)))
Streams
Evaluation steps:
Promises aren’t evaluated until you call cdr-stream!
Streams
(define s (cons-stream 1 s))
(cons-stream 1 (cons 2 nil))
Why the Dot?