September 2017 Update

This commit is contained in:
Ingy döt Net 2017-09-23 10:01:46 +02:00
parent bba7bfd280
commit ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions

View file

@ -1,26 +1,29 @@
#define system.
#define extensions.
import extensions.
// --- Ackermann function ---
#symbol ackermann = (:m:n)
ackermann = (:m:n)
[
if((n < 0)||(m < 0))
[
InvalidArgumentException new; raise
].
m =>
0 ? [ n + 1 ]
> 0 ? [
n => 0 ? [ ackermann eval:(m - 1):1 ]
> 0 ? [ ackermann eval:(m - 1):(ackermann eval:m:(n-1)) ]
0 [ ^n + 1 ];
! [
n =>
0 [ ^ackermann eval(m - 1,1) ];
! [ ^ackermann eval(m - 1,ackermann eval(m,n-1)) ]
]
].
#symbol program =
program =
[
0 to:3 &doEach: (:i)
0 to:3 do(:i)
[
0 to:5 &doEach: (:j)
0 to:5 do(:j)
[
console writeLine:"A(":i:",":j:")=":(ackermann eval:i:j).
].
console printLine("A(",i,",",j,")=",ackermann eval(i,j))
]
].
console readChar.