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