A practical lambda-calculator is a normal-order evaluator for the untyped lambda-calculus, extended with convenient commands and shortcuts to make programming in it more productive. Shortcuts are distinguished constants that represent terms. Commands define new shortcuts, activate tracing of all reductions, compare terms modulo alpha-conversion, print all defined shortcuts and evaluation flags, etc. Terms to evaluate and commands are entered at a read-eval-print-loop (REPL) "prompt" or "included" from a file by a special command. A Haskell branch is an embedding of the lambda calculator (as a domain-specific language) into Haskell. The calculator can be used interactively within Hugs or GHCi.
|Tags||Scientific/Engineering Mathematics Software Development Interpreters|
|Operating Systems||OS Independent|
|Implementation||Other Scheme Haskell|
Release Notes: This version introduces P-numerals, which are arithmetically more convenient and efficient numerals than Church numerals. P-numerals are a functional equivalent of a list data structure. A solution to a bluff combinator puzzle in Lambda calculus was added. Lambda arithmetics were re-written in the notation of the lambda calculator in Haskell. A validation test suite was also added.
Release Notes: This is the initial release of the Haskell version of the Lambda Calculator. The calculator is a Domain-specific (sub)language embedded in Haskell.
Release Notes: Basic arithmetic operations (comparison, addition, subtraction, multiplication, and division) on non-negative and negative integer numbers was implemented and explained. Both the integers and the operations on them are represented as terms in the pure untyped lambda-calculus. The only building blocks are identifiers, abstractions, and applications. No constants or delta-rules are used. Reductions follow only the familiar beta-substitution and eta-rules.
No changes have been submitted for this release.