According to Wikipedia:
currying is the technique of translating the evaluation of a function that takes multiple arguments (or a tuple of arguments) into evaluating a sequence of functions, each with a single argument.
In Swift 3, currying was removed. But it is still a useful tool. If you still want to use currying, there's a library for that.
Given a function f:
func f(x: Int, y: Int, z: Int)
which you normally call with f(x: 1, y: 2, z: 3)
, you turn it into a series of functions that you can call in these order with currying:
let f0 = curry(f)
let f1 = f0(1)
let f2 = f1(2)
let result = f2(3)
This is useful, for e.g., because you can create the functions stored in f1
, f2
as you process and gather the arguments.
While an alternative is just to store the values of x
, y
as we gather them in an object, as we write more functional code, currying is a very useful technique.
Your feedback is valuable: Do you want more nuggets like this? Yes or No
.
.