LaunchburyInterpreter
object LaunchburyInterpreter
Simple call-by-need (i.e. lazy) interpreter for Lambda Calculus based off of John Launchbury's "A Natural Semantics for Lazy Evaluation" Uses the "Barendregt convention": All variable names are globally unique (i.e. you cannot shadow variable names), and renames variables after substitution to maintain this invariant.
Type members
Classlikes
sealed abstract
class Expr
Simple lambda calculus Abstract Syntax Tree. Note that that apply applies a let-bound argument to an Expr. This is to make sharing easier, by ensuring that arguments are in the heap.
Simple lambda calculus Abstract Syntax Tree. Note that that apply applies a let-bound argument to an Expr. This is to make sharing easier, by ensuring that arguments are in the heap.