September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue