@calculemus/abt-lambda
v0.0.6
Published
Using @calculemus/abt to interpret lambda-calculus
Downloads
1
Readme
Lambda calculus
Demonstration of the @calculemus/abt library.
Based on Peter Sestoft's Demonstrating Lambda Calculus Reduction.
Using the evaluator
You can try the following code over at RunKit:
const abtLambda = require("@calculemus/abt-lambda");
// Parse, evaluate, and print as different steps
const [fv, e] = abtLambda.parse("x (x => (x => x) y x)");
console.log(abtLambda.toString(e));
const [gas, norm] = abtLambda.callByName.normalize(100, fv, e);
console.log(abtLambda.toString(norm));
// Do all of that at once
console.log(abtLambda.evaluate("(x => y => x y) (y => x) z"));