У меня есть модуль, который выполняет некую неограниченную минимизацию. Я хотел бы, чтобы его интерфейс был максимально простым, поэтому лучшим выбором было бы сократить его до одной функции, например: min_of( F ).
Но поскольку это жестокие вычисления, мне придется иметь дело как минимум с двумя константами: точностью алгоритма минимизации и максимальным количеством итераций, чтобы он не завис, если целевая функция вообще не имеет локального минимума. .
В любом случае, следующий лучший выбор: min_of( F, Iterations, Eps ). Это нормально, но мне это не нравится. Я бы хотел, чтобы еще одна функция min_of( F ) была определена примерно так:
min_of( F ) ->
min_of( F, 10000, 0.0001).
Но без магических чисел.
Я новичок в Erlang, поэтому не знаю, как с этим правильно обращаться. Должен ли я определить макрос, переменную или, может быть, функцию, возвращающую константу? Или даже что-то еще? Я нашел Erlang довольно выразительным, поэтому этот вопрос кажется скорее хорошей практикой, чем техническим вопросом.