From d068f0b3c11348a50c18af1ee3b0d2e5f38c4faf Mon Sep 17 00:00:00 2001 From: Matthew Sotoudeh Date: Fri, 17 May 2024 15:57:30 -0700 Subject: lua benchmarks --- .../tests/Lua-Benchmarks/fixpoint-fact.lua | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 lua_benchmark/tests/Lua-Benchmarks/fixpoint-fact.lua (limited to 'lua_benchmark/tests/Lua-Benchmarks/fixpoint-fact.lua') diff --git a/lua_benchmark/tests/Lua-Benchmarks/fixpoint-fact.lua b/lua_benchmark/tests/Lua-Benchmarks/fixpoint-fact.lua new file mode 100644 index 0000000..743a67c --- /dev/null +++ b/lua_benchmark/tests/Lua-Benchmarks/fixpoint-fact.lua @@ -0,0 +1,24 @@ +-- fixed-point operator +local Z = function (le) + local a = function (f) + return le(function (x) return f(f)(x) end) + end + return a(a) + end + + +-- non-recursive factorial + +local F = function (f) + return function (n) + if n == 0 then return 1 + else return n*f(n-1) end + end + end + +local fat = Z(F) + +local s = 0 +for i = 1, arg[1] or 100 do s = s + fat(i) end +print(s) + -- cgit v1.2.3