local function fib (n) N = N + 1 if n < 2 then return n else return fib (n - 1) + fib (n - 2) end end n = arg[1] or 24 n = tonumber (n) print ("", "n", "value", "time", "evals") local __v4s, __v1f = "plain", fib N = 0 local __v2c = os.clock () local __v5v = __v1f (n) local __v3t = os.clock () - __v2c print (__v4s, n, __v5v, __v3t, N) local __v6f = fib local __v9c = { } function fib (__v7x) local __v8y = __v9c[__v7x] if not __v8y then __v8y = __v6f (__v7x) __v9c[__v7x] = __v8y end return __v8y end local __v12s, __v10f = "cached", fib N = 0 local __v13c = os.clock () local __v14v = __v10f (n) local __v11t = os.clock () - __v13c print (__v12s, n, __v14v, __v11t, N)