| package main | |
| import "fmt" | |
| // fib returns a function that returns | |
| // successive Fibonacci numbers. | |
| func fib() func() int { | |
| a, b := 0, 1 | |
| return func() int { | |
| a, b = b, a+b | |
| return a | |
| } | |
| } | |
| func main() { | |
| f := fib() | |
| // Function calls are evaluated left-to-right. | |
| fmt.Println(f(), f(), f(), f(), f()) | |
| } |