今天我在看我的代码中的一个函数,我想知道是否可能将部分组合和优化结合起来:
let foo (X:float) y1 y2 dx =
y1 + (y2 - y1) * dx / X
基本上,只需应用比率 - 因此,在给定的循环内,前三个参数通常是相同的。
我想也许只需要这样做:
let foo2 (X:float) y1 y2 dx =
let dy = (y2 - y1) / X
y1 + dy * dx
当我部分应用前三个参数时,F#会变得聪明并对我进行优化,但在调试模式下似乎并非如此(尽管我不确定我是否以正确的方式进行了测试)。
问题是,这样做是否可行?如果不行,有没有更好的方法(除了编写另一个只有两个参数的函数)?