Java 函数式编程 - 柯里化

柯里化是一种技术,其中许多参数的函数调用被具有较少参数的多个方法调用所取代。

参见以下等式。

(1 + 2 + 3) = 1 + (2 + 3) = 1 + 5 = 6

就函数而言:

f(1,2,3) = g(1) + h(2 + 3) = 1 + 5 = 6

这种函数级联称为柯里化,对级联函数的调用必须产生与调用主函数相同的结果。

以下示例显示了柯里化的工作原理。

import java.util.function.Function;

public class FunctionTester {
   public static void main(String[] args) {
      Function<Integer, Function<Integer, Function<Integer, Integer>>> 
         addNumbers = u -> v -> w -> u + v + w;             
      int result = addNumbers.apply(2).apply(3).apply(4);        
      System.out.println(result);
   } 
}

输出

9