📅  最后修改于: 2020-03-18 13:13:27             🧑  作者: Mango
函数Currying是将具有多个参数的函数分解为具有单个参数的多个函数的概念,以使最终的输出相同。换句话说,它是一种将多值参数函数简化为单值参数多功能的技术。
考虑以下概念:
Currying将高阶函数分解为一系列较小的级联函数,这些函数采用一个参数并返回一个函数,最后一个级联函数除外,该函数返回所需的值。
例如:
设一个映射为
用Currying的写法,以上函数会产生:
因此g从映射u到这反过来从映射函数v到w。
上述数学表达式也可以被表示为:
因此,
以下是一些Java中的示例来演示函数Curinging:
示例1:使用函数Curinging加2个数字
// Java程序,展示Currying函数
import Java.util.function.Function;
public class GFG {
public static void main(String args[])
{
Function >
curryAdder = u -> v -> u + v;
// 调用curried函数计算u+v
System.out.println("Add 2, 3 :"
+ curryAdder
.apply(2)
.apply(3));
}
}
输出:
Add 2, 3 :5
示例2:使用函数库乘2个数字
// Java代码,展示Currying函数
import java.util.function.Function;
public class GFG {
public static void main(String args[])
{
Function >
curryMulti = u -> v -> u * v;
// 调用curried函数计算u+v
System.out.println("乘法结果 2, 3 :"
+ curryMulti
.apply(2)
.apply(3));
}
}
输出:
乘法结果 2, 3 :6
示例3:使用函数库运算来添加3个数字:
// Java代码,展示Currying函数
import Java.util.function.Function;
public class GFG {
public static void main(String args[])
{
Function > >
triadder = u -> w -> v -> u + w + v;
// 调用curried函数计算u+v+w
System.out.println("累加 2, 3, 4 :"
+ triadder
.apply(2)
.apply(3)
.apply(4));
}
}
输出:
累加 2, 3, 4 :9