Как мне определить что-то вроде константы в Erlang?

У меня есть модуль, который выполняет некую неограниченную минимизацию. Я хотел бы, чтобы его интерфейс был максимально простым, поэтому лучшим выбором было бы сократить его до одной функции, например: min_of( F ).

Но поскольку это жестокие вычисления, мне придется иметь дело как минимум с двумя константами: точностью алгоритма минимизации и максимальным количеством итераций, чтобы он не завис, если целевая функция вообще не имеет локального минимума. .

В любом случае, следующий лучший выбор: min_of( F, Iterations, Eps ). Это нормально, но мне это не нравится. Я бы хотел, чтобы еще одна функция min_of( F ) была определена примерно так:

min_of( F ) ->
    min_of( F, 10000, 0.0001).

Но без магических чисел.

Я новичок в Erlang, поэтому не знаю, как с этим правильно обращаться. Должен ли я определить макрос, переменную или, может быть, функцию, возвращающую константу? Или даже что-то еще? Я нашел Erlang довольно выразительным, поэтому этот вопрос кажется скорее хорошей практикой, чем техническим вопросом.

11
задан akalenuk 2 June 2012 в 10:07
поделиться