Охрана (программирование)

Охрана (программирование)

Охра́на (охраня́ющее выраже́ние) — логическое выражение, которое предназначено для ограничения вычислительных процессов и направления их по определённому направлению в зависимости от условия охраны. Обычно, используется в функциональных языках программирования (например, 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

Оформление в виде охраны позволяет в случае недопустимого выражения для сопоставления перейти к следующему. В случае, если предыдущий пример будет оформлен как клоз, в котором произходит сопоставление с образцами, то при x = 0 первое сопоставление (x < 0) вызовет ошибку, обработчик которой прекратит дальнейшие попытки на сопоставление. Кроме того, для случая неистинности всех выражений, удобно отлавливать такие ситуации установкой непосредственного значения истиности True. Для удобочитаемости, в стандартной библиотеке Prelude имеется константа otherwise, что внешне ещё более напоминает переключатель в алгоритмических языках.

См. также

Литература

  • Душкин Р.В. Охрана // Приёмы программирования // Функции // Синтаксис и идиомы языка // Справочник по языку Haskell / Гл. ред. Д. А. Мовчан. — М.: ДМК Пресс, 2008. — С. 37-38. — 554 с. — 1500 экз. — ISBN 5-94074-410-9, ББК 32.973.26-018.2, УДК 004.4

Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Охрана (программирование)" в других словарях:

  • Охрана — В Викисловаре есть статья «охрана» Слово Охрана может означать: Тот, кто охраняет Это  оригинальное значение. Охранник. Телохранитель Тюремный надзиратель Другие значения Железнодорожный служащий, обычно путешествует в последнем транспортном …   Википедия

  • Вооружённая охрана — Слово Охрана может означать: Тот, кто охраняет Это оригинальное значение. Охранник. Телохранитель Тюремный надзиратель Другие значения Железнодорожный служащий, обычно путешествует в последнем транспортном вагоне поезда и ответственен за… …   Википедия

  • Монада (программирование) — У этого термина существуют и другие значения, см. Монада (значения). Монада в программировании  это абстракция линейной цепочки связанных вычислений. Её основное назначение  инкапсуляция функций с побочным эффектом от чистых функций, а… …   Википедия

  • Государственная программа — (Government program) Государственная программа это инструмент государственного регулирования экономики, обеспечивающий достижение перспективных целей Понятие государственной программы, виды государственных федеральных и муниципальных программ,… …   Энциклопедия инвестора

  • Список академических дисциплин — Эта статья содержит незавершённый перевод с иностранного языка. Вы можете помочь проекту, переведя её до конца. Если вы знаете, на каком языке написан фрагмент, укажите его в этом шаблоне …   Википедия

  • Оберон-2 — Оберон  язык программирования высокого уровня, разработанный Никлаусом Виртом, а также одноимённая операционная система, разработанная Виртом и Юргом Гуткнехтом. Это также родовое имя для всего семейства близкородственных языков, производных от… …   Википедия

  • режим — 36. режим [частота вращения] «самоходности»: Режим [минимальная частота вращения выходного вала], при котором газотурбинный двигатель работает без использования мощности пускового устройства при наиболее неблагоприятных внешних условиях. Источник …   Словарь-справочник терминов нормативно-технической документации

  • Список научных журналов ВАК Минобрнауки России на 2010-2011 года — …   Википедия

  • Оберон (язык программирования) — У этого термина существуют и другие значения, см. Оберон. Oberon Класс языка: императивный, структурированный, модульный Появился в: 1986 Автор(ы) …   Википедия

  • Список научных журналов ВАК Минобрнауки России c 2011 года —   Это служебный список статей, созданный для координации работ по развитию темы.   Данное предупреждение не ус …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»