Okay, so, Jens asked me to make a Church numeral project.

Lambda calculus, the ultimate source of the λ in the Snap*!* logo, is a branch of mathematics that describes an abstract computer that only has the features and . It turns out that that's all you need to build up to all the standard functions you expect in a programming language, and in particular, the arithmetic operators.

Church numerals are a representation of the nonnegative integers in lambda calculus. This handout and this starter project are all you need if you want to try it. I figure you lot can find any bugs in it before Jens uses it in public. :~)

(Why would you want to program with your hands tied behind your back like this? You wouldn't, not for practical programming, but it's a great environment for proving theorems about what computers can do, e.g., that some functions are uncomputable.)

P.S. Make the stage small.