Go implementation of Fibonacci Numbers

Kasun Siyambalapitiya
1 min readAug 13, 2017

--

Source: https://i.pinimg.com/originals/1f/e2/8b/1fe28baa0f0bdcf02a506911f156f324.jpg

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.

--

--

Kasun Siyambalapitiya
Kasun Siyambalapitiya

No responses yet