[package]
[Java implementation]
[Execution output]
ExprTest
import Primitive;
import Expr;
test(input) = {
output << input << " = " << eval(input) << "\n";
}
void: main(String[]: args) = {
zero = lambda("f", lambda("x", var("x")));
one = lambda("x", var("x"));
two = lambda("f", lambda("x", app(var("f"), app(var("f"), var("x")))));
i_0 = const(integer(0));
i_succ = const(proc(arg −> {integer(i) −> integer(i + 1)}.get(arg)));
test(app(app(app(two, two), i_succ), i_0));
test(app(app(app(two, app(two, two)), i_succ), i_0));
test(app(app(app(app(app(two, two), two), two), i_succ), i_0));
}