An simple Lambda calculus expression evaluator. This project was made for fun
using zig 0.12.0-dev.1168+54a4f24ea
, but everything should work on
zig 0.11
or above.
For now only the type evaluator is available, compile the binary with:
$ zig build
After the compilation is complete the binary get-type
is available at the
directory zig-out/bin/
.
The get-type
binary works processing a lambda calculus expression by the
stdin and printing one of the following:
!
, if the expression has a syntax error.-
, if the expreession results in a type error.- The type T, if the expression is valid lambda calculus expression.
An expression looks something like this:
( lambda n : Nat . if ( iszero n ) then false else true endif end 4 )
And remenber, in lambda calculus functions are values. The function type
syntax is ( Type -> Type )
, where Type
can be any type
(including a function type).