Guest User

Untitled

a guest
Dec 12th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.47 KB | None | 0 0
  1. package main
  2.  
  3. import "fmt"
  4.  
  5. // fibonacci is a function that returns
  6. // a function that returns an int.
  7. func fibonacci() func() int {
  8. n := 0
  9. a := 0
  10. b := 1
  11. c := a + b
  12.  
  13. return func() int {
  14. var ret int
  15. switch {
  16. case n == 0:
  17. n++
  18. ret = 0
  19. case n == 1:
  20. n++
  21. ret = 1
  22. default:
  23. ret = c
  24. a = b
  25. b = c
  26. c = a + b
  27. }
  28. return ret
  29. }
  30. }
  31.  
  32. func main() {
  33. f := fibonacci()
  34. for i := 0; i < 10; i++ {
  35. fmt.Println(f())
  36. }
  37. }
Add Comment
Please, Sign In to add comment