package main import . "fmt" func NewFib() func() int { var f, g int = 0, 1 return func() int { f, g = g, f + g return f } } func main() { f := NewFib() Println(f()) Println(f()) Println(f()) Println(f()) Println(f()) Println(f()) Println(f()) Println(f()) }