For debugging, terms ^X for any X are irreducible markers, and `X produce a side effect.

Step limit



Sample programs

Pluck the 4th element from the arguments
delve 3 ^A ^B ^C ^D ^E ^F
Pick abstraction with Church booleans
if not or true false (^A) (^B)
Add 2 and 1 as Church numerals
add 2 1
Add 3 to first element of pair ("first" to get it out)
map-pair (add 3) pair 1 2
Side-effect 6 times for testing
apply 6 (tally)
Duplicate all inputs on right
apply Y (copy under (apply) swap) ^A ^B ^C
Count forever
apply Y (under (apply swap) copy add 1 swap) 0
Count forever (bind)
apply Y (bind (f) (bind (y) (y apply f y) add 1)) 0
Fibonacci sequence
apply Y (bind (f) (bind (x) (bind (y) (bind (z) (x apply f z x) add x y)))) 1 0
Factorials (up to 24 at step limit 1000)
apply Y (bind (f) (bind (x) (bind (y) (bind (z) (z apply f z add 1 y) mul x y)))) 1 1

Predefined named terms