Lenient evaluation is neither strict nor lazy

  • Authors:
  • G. Tremblay

  • Affiliations:
  • Départment d'informatique, UQAM, C.P. 8888, Succ. Centre-Ville, Montréal, Québec, Canada H3C 3P8

  • Venue:
  • Computer Languages
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

What is a non-strict functional language? Is a non-strict language necessarily lazy? What additional expressiveness brings non-strictness, with or without laziness? This paper tries to shed some light on these questions. First, in order to characterize non-strictness, different evaluation strategies are introduced: strict, lazy, and lenient. Then, using program examples, how these evaluation strategies differ from each other is examined, showing that non-strictness, even without laziness, allows a more general use of recursive definitions. We also report on a small experiment that we performed to examine how, in practice, laziness was used in a number of lazy benchmark programs.