gonads/thunk_test.go

33 lines
444 B
Go

package gonads
import (
"testing"
)
func Fib(n int) int {
if n <= 1 {
return n
}
return Fib(n-1) + Fib(n-2)
}
func TestRecurFib(t *testing.T) {
t.Log(Fib(40))
}
func TestThunkFib(t *testing.T) {
cache := make([]Thunk[int], 41)
cache[0].o.Set(0)
cache[1].o.Set(1)
fib := func(n int) int {
return cache[n-1].Force(n-1) + cache[n-2].Force(n-2)
}
for i := range cache {
cache[i].doer = fib
}
t.Log(cache[40].Force(40))
}