Монада является, эффективно, формой "оператора типа". Это сделает три вещи. Сначала это "обернет" (или иначе преобразует), значение одного типа в другой тип (обычно названный "одноместным типом"). Во-вторых, это сделает все операции (или функции) доступный на базовом типе доступный на одноместном типе. Наконец это окажет поддержку для объединения сам с другой монадой для создания составной монады.
, "возможно, монада" является по существу эквивалентом "nullable типов" в Visual Basic / C#. Это берет не nullable тип "T" и преобразовывает его в "Nullable< T>"; и затем определяет то, что все бинарные операторы означают на Nullable< T>.
Побочные эффекты представлены так же. Структура создается, который содержит описания побочных эффектов вместе с возвращаемым значением функции. "Снятые" операции тогда копируют вокруг побочных эффектов, когда значения передаются между функциями.
Их называют "монадами", а не более легким к схватыванию названием "операторов типа" по нескольким причинам:
Use XOR:
SELECT value ^ 256
So in your case, SELECT 143 ^ 256
will indeed return 399. If you want to pass in the exponent as well:
SELECT value ^ POWER(2, power)