package main import "fmt" func fibonacci() func() int { first, second := 0, 1 return func() int { previousFirst := first first, second = second, first + second return previousFirst } } func main() { f := fibonacci() for i := 0; i < 10; i++ { fmt.Println(f()) } }