Golang: Closure
Golang's function is a Closure. Practically, a function with local state.
package main import "fmt" // return a closure func ff() func(int) int { var i = 0 var gg = func(x int) int { i += x return i } // the returned function gg return gg } func main() { var hh = ff() fmt.Println(hh(1)) // 1 fmt.Println(hh(1)) // 2 fmt.Println(hh(1)) // 3 }