November 2017
Intermediate to advanced
670 pages
17h 35m
English
Before we move on, let's look at the following curried versus non-curried code example to improve our understanding of currying:
package mainimport "fmt"// numberIs numberIs a simple function taking an integer and returning booleantype numberIs func(int) boolfunc lessThanTwo(i int) bool { return i < 2 }// No curried parametersfunc lessThan(x int, y int) (bool) { return x < y}func main() { fmt.Println("NonCurried - lessThan(1,2):", lessThan(1, 2)) fmt.Println("Curried - LessThanTwo(1):", lessThanTwo(1))}
You would immediately see that the curried example takes only one parameter, whereas the non-curried example requires two. The idea behind currying is to create new, more specific functions from smaller, more general, ...