diff --git a/thunk_test.go b/thunk_test.go index bd7aaec..b8b274f 100644 --- a/thunk_test.go +++ b/thunk_test.go @@ -15,6 +15,24 @@ func TestRecurFib(t *testing.T) { t.Log(Fib(40)) } +func TestMemoizedFib(t *testing.T) { + mem := map[int]int{ + 0: 0, + 1: 1, + } + + var fib func(int) int + fib = func(n int) int { + if result, ok := mem[n]; ok { + return result + } + + result := fib(n-1) + fib(n-2) + mem[n] = result + return result + } +} + func TestThunkFib(t *testing.T) { cache := make([]*Thunk[int], 41)