package main import "fmt" // fibonacci is a function that returns // a function that returns an int. // F(n+2) = F(n+1) + Fn func fibonacci() func() int { fn := 0 fn1 := 0 return func() int { fn2 := fn1 + fn fn = fn1 fn1 = fn2 if fn1 == 0 {fn++} return fn2 } } func main() { f := fibonacci() for i := 0; i < 10; i++ { fmt.Println(f()) } }
'Go' 카테고리의 다른 글
A Tour of Go : 36 연습: 슬라이스 (0) | 2015.10.16 |
---|---|
A Tour of Go : 41 연습 맵 (0) | 2015.10.16 |