github.com/traefik/yaegi@v0.15.1/_test/closure2.go (about)

     1  package main
     2  
     3  func adder() func(int) int {
     4  	sum := 0
     5  	return func(x int) int {
     6  		sum = sum + x
     7  		return sum
     8  	}
     9  }
    10  
    11  func main() {
    12  	pos, neg := adder(), adder()
    13  	for i := 0; i < 10; i++ {
    14  		println(pos(i), neg(-2*i))
    15  	}
    16  }
    17  
    18  // Output:
    19  // 0 0
    20  // 1 -2
    21  // 3 -6
    22  // 6 -12
    23  // 10 -20
    24  // 15 -30
    25  // 21 -42
    26  // 28 -56
    27  // 36 -72
    28  // 45 -90