Lecture overview -- Keyboard shortcut: 'u'  Previous page: Delayed evaluation and infinite lists in Scheme [Section] -- Keyboard shortcut: 'p'  Next page: Examples of delayed evaluation -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Textbook -- Keyboard shortcut: 'v'  Help page about these notes  Alphabetic index  Course home    Lecture 5 - Page 21 : 26
Functional Programming in Scheme
The Order of Evaluation
Delayed evaluation in Scheme

Scheme does not support normal-order reduction nor lazy evaluation

Scheme has an explicit primitive which delays an evaluation


(delay expr) => promise


(force promise) => value

y:/Kurt/Files/courses/prog3/prog3-03/sources/notes/includes/delay-force-principle.scmA principled implementation of delay and force in Scheme.


y:/Kurt/Files/courses/prog3/prog3-03/sources/notes/includes/delay-force.scmReal implementations of delay.

The first definition uses the R5RS macro facility, whereas the last one uses a more primitive macro facility, which happens to be supported in MzScheme.