mirror of
https://github.com/fluencelabs/redis
synced 2025-06-27 16:01:32 +00:00
deps
hiredis
jemalloc
linenoise
lua
doc
etc
src
test
README
bisect.lua
cf.lua
echo.lua
env.lua
factorial.lua
fib.lua
fibfor.lua
globals.lua
hello.lua
life.lua
luac.lua
printf.lua
readonly.lua
sieve.lua
sort.lua
table.lua
trace-calls.lua
trace-globals.lua
xd.lua
COPYRIGHT
HISTORY
INSTALL
Makefile
README
Makefile
README.md
update-jemalloc.sh
src
tests
utils
.gitignore
00-RELEASENOTES
BUGS
CONTRIBUTING
COPYING
INSTALL
MANIFESTO
Makefile
README.md
redis.conf
runtest
runtest-cluster
runtest-sentinel
sentinel.conf
41 lines
605 B
Lua
41 lines
605 B
Lua
![]() |
-- fibonacci function with cache
|
||
|
|
||
|
-- very inefficient fibonacci function
|
||
|
function fib(n)
|
||
|
N=N+1
|
||
|
if n<2 then
|
||
|
return n
|
||
|
else
|
||
|
return fib(n-1)+fib(n-2)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- a general-purpose value cache
|
||
|
function cache(f)
|
||
|
local c={}
|
||
|
return function (x)
|
||
|
local y=c[x]
|
||
|
if not y then
|
||
|
y=f(x)
|
||
|
c[x]=y
|
||
|
end
|
||
|
return y
|
||
|
end
|
||
|
end
|
||
|
|
||
|
-- run and time it
|
||
|
function test(s,f)
|
||
|
N=0
|
||
|
local c=os.clock()
|
||
|
local v=f(n)
|
||
|
local t=os.clock()-c
|
||
|
print(s,n,v,t,N)
|
||
|
end
|
||
|
|
||
|
n=arg[1] or 24 -- for other values, do lua fib.lua XX
|
||
|
n=tonumber(n)
|
||
|
print("","n","value","time","evals")
|
||
|
test("plain",fib)
|
||
|
fib=cache(fib)
|
||
|
test("cached",fib)
|