我有一个模块可以进行一些非约束最小化。我想让它的界面尽可能简单,所以最好的选择是将它简化为一个函数,比如:min_of(F)。
但是一旦它是残酷的计算,我将不得不处理至少两个常数:最小化算法的精度和最大迭代次数,因此如果目标函数根本没有局部最小值,它就不会自行挂起。
无论如何,下一个最佳选择是:min_of(F, Iterations, Eps)。没关系,但我不喜欢它。我还想再定义一个 min_of( F ) 是这样的:
min_of( F ) ->
min_of( F, 10000, 0.0001).
但没有神奇的数字。
我是 Erlang 的新手,所以我不知道如何正确处理这个问题。我应该定义一个宏、一个变量还是一个返回常量的函数?还是别的什么?我发现 Erlang 的表达能力很强,所以这个问题似乎是一个很好的实践,而不是技术问题。