index
Go supports [_anonymous functions_](http://en.wikipedia.org/wiki/Anonymous_function), which can form <a href="http://en.wikipedia.org/wiki/Closure_(computer_science)"><em>closures</em></a>. Anonymous functions are useful when you want to define a function inline without having to name it.
package main
import "fmt"
This function `intSeq` returns another function, which we define anonymously in the body of `intSeq`. The returned function _closes over_ the variable `i` to form a closure.
func intSeq() func() int {
	i := 0
	return func() int {
		i++
		return i
	}
}
func main() {
We call `intSeq`, assigning the result (a function) to `nextInt`. This function value captures its own `i` value, which will be updated each time we call `nextInt`.
	nextInt := intSeq()
See the effect of the closure by calling `nextInt` a few times.
	fmt.Println(nextInt())
1
	fmt.Println(nextInt())
2
	fmt.Println(nextInt())
3
To confirm that the state is unique to that particular function, create and test a new one.
	newInts := intSeq()
	fmt.Println(newInts())
1
}
index