github.com/l3x/learn-fp-go@v0.0.0-20171228022418-7639825d0b71/4-purely-functional/ch11-category-theory/03_lambda/main.go (about) 1 package main 2 3 type lambda func(int) int 4 5 func add(a int) lambda { 6 return func(free int) int { 7 return func(b int) int { 8 return a + b 9 }(free) 10 } 11 } 12 13 func main() { 14 add2 := add(2) 15 three := add2(1) 16 println("Pass 1 to to add2 expression to get:", three) 17 four := add2(2) 18 println("Pass 2 to to add2 expression to get:", four) 19 } 20 21 22 /* 23 var n = 10 24 fmt.Println(n == func(z int) int { return n }(123)) 25 fmt.Println(add(1)(10)) 26 27 */