我有一个模块,用于进行一些非约束最小化。 我想尽可能简化其接口,因此最好的选择是将其缩减为类似于 min_of( F ) 的单个函数。
但由于这是一种粗暴的计算方法,因此我必须处理至少两个常量:最小化算法的精度和最大迭代次数,以便在目标函数根本没有局部最小值时不会让程序挂起。
无论如何,下一个最佳选择是:min_of( F, Iterations, Eps )。这还不错,但我不喜欢它。我仍然希望有另一个类似于 min_of( F ) 的定义,就像这样:
min_of( F ) ->
min_of( F, 10000, 0.0001).
但不要使用魔法数值。
我对Erlang很陌生,所以不知道如何正确处理这个问题。我应该定义一个宏、变量或者一个返回常量的函数吗?还是其他什么方法?我发现Erlang相当表达性强,所以这个问题似乎更多地涉及良好的编程实践,而不是技术问题。