如何将Function和BiFunction组合在一起执行(x + y)^ 2

时间:2018-08-06 04:06:12

标签: lambda java-8 composition

我是JAVA8的新手,我试图通过Lambda表达式的组合实现一些示例以执行算术方程。

我提到的几本书中仅举了一些例子来构成“功能”。但是我觉得将“ Function”和“ BiFunction”组合在一起执行(x + y)^ 2

并不复杂

我想在这里执行(x + y)^ 2,结果是(x ^ 2 + 2xy + Y ^ 2)。

首先,我尝试创建要执行的函数f1(x * x)和要执行的双功能f2(2 * x * y)。但是我没有找到任何合适的方法将f1和f2组合在一起。所以我以下面提到的简单代码结束了我的练习:

public static void main(String[] args) {

        Long a = 1l;
        Long b = 2l;

        Function<Long, Long> f1 = (x) -> x * x;
        BiFunction<Long, Long, Long> f2 = (x,y) -> 2* x * y;
        BiFunction<Long, Long, Long> f3  = (x,y) -> x + y;      
        Long result = f3.apply(f3.apply(f1.apply(a), f1.apply(b)),f2.apply(a, b));

        System.out.println("Result of (1+2)^2 is :"+ result);

    }

}

还有其他更好且更可靠的方法可以用来改进上述合成示例吗?

0 个答案:

没有答案