fn isZero { [Z] => True; [] => False }; fn add { [Z] => fn { [y] => y }; [] => fn { [y] => add[x][] }; }; incr := add[]; two := >; four := >>>; fn if { [True] => fn { [x] => fn { [_] => x } }; [False] => fn { [_] => fn { [y] => y } }; }; fn minusOne { [Z] => Z; [] => x }; puts "S is " S; puts "Z is " Z; puts "True is " True; puts "False is " False; puts "Is 0 zero?"; puts isZero[Z]; puts "Is 4 zero?"; puts isZero[four]; puts "2 + 4 = "; puts add[four][two]; puts "Is zero zero?"; puts if[isZero[Z]]["yes"]["no"]; puts "Is 0+1 zero?"; puts if[isZero[incr[Z]]]["yes"]["no"];