Data update
This commit is contained in:
parent
4d5544505c
commit
4924dd0264
3073 changed files with 55820 additions and 4408 deletions
8
Task/Ackermann-function/ArkScript/ackermann-function.ark
Normal file
8
Task/Ackermann-function/ArkScript/ackermann-function.ark
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
(let ackermann (fun (m n) {
|
||||
(if (> m 0)
|
||||
(if (= 0 n)
|
||||
(ackermann (- m 1) 1)
|
||||
(ackermann (- m 1) (ackermann m (- n 1))))
|
||||
(+ 1 n)) }))
|
||||
|
||||
(assert (= 509 (ackermann 3 6)) "(ackermann 3 6) == 509")
|
||||
13
Task/Ackermann-function/Pluto/ackermann-function.pluto
Normal file
13
Task/Ackermann-function/Pluto/ackermann-function.pluto
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
function ack(m,n)
|
||||
if m==0 then
|
||||
return n+1
|
||||
elseif n == 0 then
|
||||
return ack(m-1,1)
|
||||
else return ack(m-1,ack(m,n-1)) end
|
||||
end
|
||||
|
||||
for i = 0,3 do
|
||||
for j = 0,8 do
|
||||
print($"A({i},{j})={ack(i,j)}")
|
||||
end
|
||||
end
|
||||
7
Task/Ackermann-function/REBOL/ackermann-function-1.rebol
Normal file
7
Task/Ackermann-function/REBOL/ackermann-function-1.rebol
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
ackermann: func [m n] [
|
||||
case [
|
||||
m = 0 [n + 1]
|
||||
n = 0 [ackermann m - 1 1]
|
||||
true [ackermann m - 1 ackermann m n - 1]
|
||||
]
|
||||
]
|
||||
16
Task/Ackermann-function/REBOL/ackermann-function-2.rebol
Normal file
16
Task/Ackermann-function/REBOL/ackermann-function-2.rebol
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
ackermann: func [
|
||||
m [integer!]
|
||||
n [integer!]
|
||||
] [
|
||||
;; Small-m closed forms
|
||||
case [
|
||||
m = 0 [n + 1]
|
||||
m = 1 [n + 2]
|
||||
m = 2 [(2 * n) + 3]
|
||||
m = 3 [
|
||||
;; 2^(n+3) - 3
|
||||
(to integer! power 2 (n + 3)) - 3
|
||||
]
|
||||
;; m >= 4 causes stack overflow
|
||||
]
|
||||
]
|
||||
11
Task/Ackermann-function/TAV/ackermann-function.tav
Normal file
11
Task/Ackermann-function/TAV/ackermann-function.tav
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
ackermann (n) (m) :
|
||||
? n = 0
|
||||
:> m+1
|
||||
? m = 0
|
||||
:> ackermann (n-1) 1
|
||||
:> ackermann (n-1) ackermann n (m-1) \ = ackermann (n-1) (ackermann n (m-1))
|
||||
\ test it
|
||||
main(params):+
|
||||
p1 =: string params[1] as integer else 3
|
||||
p2 =: string params[2] as integer else 5
|
||||
print "ackermann(" _ p1 _ "," _ p2 _ ") = " _ ackermann p1 p2
|
||||
Loading…
Add table
Add a link
Reference in a new issue