O'Reilly logo

Clojure Applied by Alex Miller, Ben Vandgrift

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Lazy and Delayed Evaluation

Laziness refers to the delay in the evaluation of an expression until it’s required. In many of Clojure’s evaluation algorithms, data structures are abstracted as logical lists or sequences. Sequencing enables the lazy evaluation of the sequence’s elements, realizing performance gains in many circumstances and allowing for the creation of infinite lists.

Peter Henderson and James H. Morris, Jr. introduced A Lazy Evaluator [HM76][80] to Lisp in 1976, building on the call-by-need mechanism introduced by Wadsworth in Semantics and Pragmatics of the Lambda-calculus [Wad71] and the delay rule as presented by Jean Vuillemin in Correct and Optimal Implementations of Recursion in a Simple Programming Language [Vui73].

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required