RosettaCodeData/Task/Ackermann-function/Elena/ackermann-function.elena

28 lines
496 B
Plaintext

#define system.
#define extensions.
// --- Ackermann function ---
#symbol ackermann = (:m:n)
[
m =>
0 ? [ n + 1 ]
> 0 ? [
n => 0 ? [ ackermann eval:(m - 1):1 ]
> 0 ? [ ackermann eval:(m - 1):(ackermann eval:m:(n-1)) ]
]
].
#symbol program =
[
0 to:3 &doEach: (:i)
[
0 to:5 &doEach: (:j)
[
console writeLine:"A(":i:",":j:")=":(ackermann eval:i:j).
].
].
console readChar.
].