Lecture overview -- Keyboard shortcut: 'u'  Previous page: Examples of delayed evaluation -- Keyboard shortcut: 'p'  Next page: Example streams -- Keyboard shortcut: 'n'  Lecture notes - all slides together  Annotated slide -- Keyboard shortcut: 't'  Alphabetic index  Help page about these notes  Course home    Evaluation Order and Infinite Lists - slide 23 : 27

Infinite lists in Scheme: Streams

We can work with lists of infinite length by delaying the evaluation of every list tail using delay

As an invariant, every list tail will be delayed

(cons-stream a b)   ~   (cons a (delay b))

(define head car)

(define (tail stream) (force (cdr stream)))

(define empty-stream? null?)

(define the-empty-stream '())
An implementation of cons-stream in R5RS Scheme.

The functions mentioned above are taken from the book

Structure and Interpretation of Computer Programs