Play audio slide show -- Keyboard shortcut: 'x'  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'  Textbook -- Keyboard shortcut: 'v'  Alphabetic index  Help page about these notes  Course home      The Order of Evaluation - slide 23 : 26

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 '())
stream.scm
An implementation of cons-stream in R5RS Scheme.
The functions mentioned above stem from the book Structure and Interpretation of Computer Programs