下面是一个F#代码片段,我试图消除对输入参数的依赖并执行某种功能组合:
let h x1 x2 = (*) (exp x1) (sin x2) // how to reduce to point free style
我试过了:
let h1 = (*) exp sin
let h2 = exp * sin
let h3 = ((*) << exp) << sin
编译器对前两个不满意,最后一个没有产生预期的结果。
我实际上是在尝试解决更常见的功能组合问题(使用F#提供的任何工具),总结如下:
f1: float -> float
f2: float -> float
f3: float -> float -> float
How to construct h = f3(f1(x),f2(y)) represented mathematically.