用 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
广告