Home | History | Annotate | Download | only in play
      1 package main
      2 
      3 import "fmt"
      4 
      5 // fib returns a function that returns
      6 // successive Fibonacci numbers.
      7 func fib() func() int {
      8 	a, b := 0, 1
      9 	return func() int {
     10 		a, b = b, a+b
     11 		return a
     12 	}
     13 }
     14 
     15 func main() {
     16 	f := fib()
     17 	// Function calls are evaluated left-to-right.
     18 	fmt.Println(f(), f(), f(), f(), f())
     19 }
     20