Go implementation of Fibonacci Numbers
1 min readAug 13, 2017
While learning go language you may have encountered with an exercise to implement Fibonacci numbers with go function closures. Here is how I implemented it.
package mainimport "fmt"// fibonacci returns a function which returns an int.( a closure)
func fibonacci() func() int {
before, after := 0, 1
return func() int {
rtn := before
before, after = after, before+after
return rtn
}
}func main() {
f := fibonacci() // a function closure is return
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
Do note that after always contain the value which gets returned in the next round.