From 2d1df4714e2736dbde7855ddcd76b4c1de822fa5 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 23 Jan 2012 21:58:02 +1000 Subject: Added a big bunch of example lua scripts for testing the speed of lua compiling. --- .../yueliang-0.4.1/test_lua/5.0/factorial.lua | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 LuaSL/testLua/yueliang-0.4.1/test_lua/5.0/factorial.lua (limited to 'LuaSL/testLua/yueliang-0.4.1/test_lua/5.0/factorial.lua') diff --git a/LuaSL/testLua/yueliang-0.4.1/test_lua/5.0/factorial.lua b/LuaSL/testLua/yueliang-0.4.1/test_lua/5.0/factorial.lua new file mode 100644 index 0000000..7c4cf0f --- /dev/null +++ b/LuaSL/testLua/yueliang-0.4.1/test_lua/5.0/factorial.lua @@ -0,0 +1,32 @@ +-- function closures are powerful + +-- traditional fixed-point operator from functional programming +Y = function (g) + local a = function (f) return f(f) end + return a(function (f) + return g(function (x) + local c=f(f) + return c(x) + end) + end) +end + + +-- factorial without recursion +F = function (f) + return function (n) + if n == 0 then return 1 + else return n*f(n-1) end + end + end + +factorial = Y(F) -- factorial is the fixed point of F + +-- now test it +function test(x) + io.write(x,"! = ",factorial(x),"\n") +end + +for n=0,16 do + test(n) +end -- cgit v1.1