ackermann in false

stevan apter — 2004-05-20 22:25:39

see http://www.nsl.com/papers/false.htm

i've made a few upward-compatible changes to the 'false' language
definition. the most significant is the addition of the dip
combinator (since i can hardly imagine programming without it.)

here's ackermann's function:

[0=]z:
[1+]s:
[1_+]p:
[\$Z!@\]b:
[\S!@%\]c:
[$Z!]d:
[%%P!1A!1]e:
[[$P!\](P!A!A!]f:
[B!$C?~[D!$E?~F?]?]a:

e.g. [1+]s: sets 's' to the successor function.

'a' is ackermann, and reads (more or less):

if B dup C else if D dup then E else F

where B, C, D, E, and F are defined above.