summaryrefslogtreecommitdiff
path: root/lua_benchmark/tests/Lua-Benchmarks/ack.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua_benchmark/tests/Lua-Benchmarks/ack.lua')
-rw-r--r--lua_benchmark/tests/Lua-Benchmarks/ack.lua16
1 files changed, 16 insertions, 0 deletions
diff --git a/lua_benchmark/tests/Lua-Benchmarks/ack.lua b/lua_benchmark/tests/Lua-Benchmarks/ack.lua
new file mode 100644
index 0000000..3b41935
--- /dev/null
+++ b/lua_benchmark/tests/Lua-Benchmarks/ack.lua
@@ -0,0 +1,16 @@
+-- $Id: ackermann.lua,v 1.5 2000/12/09 20:07:43 doug Exp $
+-- http://www.bagley.org/~doug/shootout/
+
+local function Ack(M, N)
+ if (M == 0) then
+ return N + 1
+ end
+ if (N == 0) then
+ return Ack(M - 1, 1)
+ end
+ return Ack(M - 1, Ack(M, (N - 1)))
+end
+
+N = tonumber((arg and arg[1])) or 3
+M = tonumber((arg and arg[2])) or 8
+print(string.format("Ack(%d, %d) = %d\n", N, M, Ack(N,M)))
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback