Skip to content

Instantly share code, notes, and snippets.

@weppos
Last active April 29, 2025 20:49
Show Gist options
  • Select an option

  • Save weppos/7843653 to your computer and use it in GitHub Desktop.

Select an option

Save weppos/7843653 to your computer and use it in GitHub Desktop.

Revisions

  1. weppos revised this gist Dec 7, 2013. 1 changed file with 8 additions and 8 deletions.
    16 changes: 8 additions & 8 deletions 44.go
    Original file line number Diff line number Diff line change
    @@ -7,16 +7,16 @@ import "fmt"
    func fibonacci() func() int {
    f2, f1 := 0, 1
    return func() int {
    f := f2
    f2, f1 = f1, f + f1
    f := f2
    f2, f1 = f1, f+f1

    return f
    }
    }

    func main() {
    f := fibonacci()
    for i := 0; i < 10; i++ {
    fmt.Println(f())
    }
    }
    f := fibonacci()
    for i := 0; i < 10; i++ {
    fmt.Println(f())
    }
    }
  2. weppos created this gist Dec 7, 2013.
    22 changes: 22 additions & 0 deletions 44.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    package main

    import "fmt"

    // fibonacci is a function that returns
    // a function that returns an int.
    func fibonacci() func() int {
    f2, f1 := 0, 1
    return func() int {
    f := f2
    f2, f1 = f1, f + f1

    return f
    }
    }

    func main() {
    f := fibonacci()
    for i := 0; i < 10; i++ {
    fmt.Println(f())
    }
    }