diff options
Diffstat (limited to 'doc/play/fib.go')
-rw-r--r-- | doc/play/fib.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/doc/play/fib.go b/doc/play/fib.go new file mode 100644 index 000000000..42da9ce82 --- /dev/null +++ b/doc/play/fib.go @@ -0,0 +1,17 @@ +package main + +// 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. + println(f(), f(), f(), f(), f()) +} |