Skip to content

Latest commit

 

History

History
44 lines (29 loc) · 537 Bytes

README.md

File metadata and controls

44 lines (29 loc) · 537 Bytes

Simply Typed Lambda Calculus

A type checker and interpreter for simply typed lambda calculus written in JavaScript.

Example

The following program:

(λ a: Int → a) if (λ a: Int → iszero a) pred 0 then succ 0 else 0

Is correct and evaluates to 0.

How to use?

Interpreter

$ node index.js demo/correct1.lambda

0

Compiler

$ node index.js compile demo/correct1.lambda

(function(a) {
  return a;
})(
  (function(a) {
    return a === 0;
  })(0 - 1)
    ? 0 + 1
    : 0
);

License

MIT