github.com/l3x/learn-fp-go@v0.0.0-20171228022418-7639825d0b71/1-functional-fundamentals/ch03-hof/05_closure/main.go (about)

     1  package main
     2  
     3  import "fmt"
     4  
     5  func addTwo() func() int {
     6  	sum := 0
     7  	return func() int {  // anonymous function
     8  		sum += 2
     9  		return sum
    10  	}
    11  }
    12  
    13  func main() {
    14  	twoMore := addTwo()
    15  	fmt.Println(twoMore())
    16  	fmt.Println(twoMore())
    17  }