Swift中的柯里化函数
By admin
- One minute read - 65 words柯里化函数(curried function)的类型相当于一个嵌套函数类型。例如,下面的柯里化函数 addTwoNumber()()
的类型是 Int -> Int -> Int
:
func addTwoNumbers(a: Int)(b: Int) -> Int{
return a + b
}
addTwoNumbers(4)(5) // returns 9
柯里化函数的函数类型从右向左组成一组。例如,函数类型 Int -> Int -> Int
可以被理解为 Int -> (Int -> Int)
——也就是说,一个函数传入一个 Int
然后输出作为另一个函数的输入,然后又返回一个 Int
。例如,你可以使用如下嵌套函数来重写柯里化函数 addTwoNumbers()()
:
func addTwoNumbers(a: Int) -> (Int -> Int){
func addTheSecondNumber(b: Int) -> Int{
return a + b
}
return addTheSecondNumber
}
addTwoNumbers(4)(5) // Returns 9
http://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/chapter3/03_Types.html