packages feed

gulcii-0.2.0.1: lib/natural.gu

# natural
zero = \ s z . z
succ = \ n s z . s n
infinity = succ infinity
even = \n . n odd true
odd = \n . n even false
add = \ m n . m (\p . succ (add n p)) n
mul = \ m n . m (\p . add n (mul n p)) zero
sub = \ m n . m (\p . n (sub p) m) zero
equal = \ m n . m (\mm . n (\nn . equal mm nn) false) (n (\nn . false) true)
lessThan = \x y . x (\xx . y (\yy . lessThan xx yy) false) (y (\yy . true) false)