将两个或多个功能/方法组合在一起并作为一个整体工作是很常见的。举些例子:
但是,我想知道是否可以这样做:
Function<Integer, Integer> f = x -> x + 1;
Function<Integer, Integer> g = x -> x * 2;
Function<Integer, Integer> h = f.compose(g);
** **
h.toString //get x-> x*2+1 , what I want
函数被“深度”组合,类似于Matlab等数学软件中的表达式简化。
我知道编译器中有一些有用的技术,我正在寻找如何在高级语言中完成它。
顺便说一句,我想理论上可以使用 JVM 字节码操作,但这太复杂了。