I have been trying to do memorisation in Julia for the Fibonacci function. This is what I came up with.
The original unmodified code (for control purposes)
The simplest way to do it is to use get!
const fibmem = Dict{Int,Int}()
function fib(n)
get!(fibmem, n) do
n < 3 ? 1 : fib(n-1) + fib(n-2)
end
end
Note the const specifier outside fibmem
. This avoids the need for global
, and will make the code faster as it allows the compiler to use type inference within fib
.