|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
Stream primitives. Notice the way head is defined to be an alias of car.
The functions mentioned above stem from the book Structure and Interpretation of Computer Programs