Lecture overview -- Keyboard shortcut: 'u'  Previous page: Theoretical results -- Keyboard shortcut: 'p'  Next page: Conditionals and sequential boolean operators -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Lecture 4 - Page 17 : 27
Programming Paradigms
Evaluation Order and Infinite Lists
Practical implications

We will here describe the practical consequences of the theoretical results mentioned on the previous page

  • During the evaluation of an expression, it will never be necessary to backtrack the evaluation process in order to reach a normal form.

    • There are no blind alleys in the evaluation of an expression

  • An expression cannot be converted to two different normal forms (modulo alpha conversions, of course).

  • If an expression e somehow can be reduced to f in one or more steps, f can be reached by normal-order reduction - but not necessarily by applicative-order reduction

Normal-order reduction is more powerful than the applicative-order reduction

Scheme and ML uses applicative-order reduction

Haskell is an example of a functional programming language with normal-order reduction