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.