Предположим, что две функции f(x) и g(x) существуют и работают для аналогичных целей, но требуют контекстуального значения, чтобы определить, какое из них использовать в рамках одной и той же более широкой функции. . В контексте программирования это может быть легко решено с помощью условной проверки, но часто в «функциональном программировании», таком как Haskell, чистое математическое представление предпочтительнее для целей «каррирования» и повышения эффективности, по этой причине должна быть создана универсальная функция.

Самый простой способ сделать это — ввести ограничение и значение переключения Z, которое устанавливается в виде двоичного значения 0 или 1. Предел представлен σ, который стремится к бесконечности, lim σ ->∞. Этот предел используется для приведения f(x) к 0 путем деления его на σ, что позволяет нам обнулить f(x). Суть в том, чтобы умножить σна Z, как если бы Z = 1, тогда предел будет сохранен, но если умножить на Z = 0 рухнет и позволит запустить f(x). Единственное необходимое дополнение — константа 1, чтобы избежать деления на 0 и создания неопределенной ситуации.

Последняя часть заключается в умножении g(x) на Z и добавлении его в конец функции, чтобы, когда Z = 1, g(x) будет разрешено работать, но в противном случае он свернется до 0, когда в этом нет необходимости.

Окончательное уравнение переключения:

h(x) = lim σ -> ∞ f(x)/(Zσ+1) + Z*g(x)

В представленной здесь математике нет ничего примечательного, но она обеспечивает быстрое решение для тех, кто ищет такую ​​функцию.