i1 = fib = n -> if n <= 1 then 1 else fib(n-1) + fib(n-2)
o1 = fib
o1 : Function
i2 = time fib 16
-- used 0.37 seconds
o2 = 1597
i3 = fib = memoize fib
o3 = fib
o3 : Function
i4 = time fib 16
-- used 0.01 seconds
o4 = 1597
i5 = time fib 16
-- used 0. seconds
o5 = 1597
The function memoize operates by constructing a MutableHashTable in which the argument sequences are used as keys for accessing the return value of the function.
Warning: when the value returned by f is null, it will always be recomputed, even if the same arguments are presented.
See also original.
Go to main index.
Go to concepts index.