Охрана (программирование)
Охра́на (охраня́ющее выраже́ние) — логическое выражение, которое предназначено для ограничения вычислительных процессов и направления их по определённому направлению в зависимости от условия охраны. Обычно используется в функциональных языках программирования (например, Haskell).
Примеры охраняющих выражений
Все последующие охраняющие выражения приведены на функциональном языке Haskell, в котором эта технология используется очень часто. Все такие выражения выделены в кодах полужирным начертанием.
Пример 1 — Списочные включения
Функция divisors
возвращает список делителей заданного числа n
. Во второй строке определения показана охрана, которая ограничивает выбор элемента списка делителей x
только таким значением, которое делит исходный параметр n
без остатка.
divisors n = [x | x <- [1..(n - 1)], n `mod` x == 0]
Пример 2 — Охрана в теле функции
Функция sign
возвращает знак заданного числа x
. Охраняющие выражения записаны после символов (|
). Они позволяют выбрать ту или иную альтернативу при вычислении знака числа. Такой способ охранения часто используется вместо механизма сопоставления по образцу, когда в функции нет возможности явно описать образец (например, в случае, если функция является обобщённой прикладной функцией для обработки значений некоторого типа, являющегося экземпляром какого-либо класса).
sign x | x < 0 = -1 | x == 0 = 0 | x > 0 = 1
Ошибка: неверное или отсутствующее изображение |
В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники. |
en:Guard (computing) fr:Garde (informatique) ja:ガード (プログラミング)
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....