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 buildAfter 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).