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