Основы функционального программирования/Структуры данных и базисные операции — 2: различия между версиями
Содержимое удалено Содержимое добавлено
Строка 85:
=== Охрана ===
При написании функций в абстрактной нотации допустимо использовать так называемую охрану, т. е. ограничения на значения переменных образца. Например, при использовании охраны функция
Length (L) = 1 + Length (tail (L)) otherwise▼
В рассмотренном коде слова when (когда) и otherwise (в противном случае) являются зарезервированными словами языка. Однако использование этих слов не является необходимым условием для организации охраны. Охрану можно организовывать различными способами, в том числе и с помощью -исчисления:▼
▲В рассмотренном коде
<math>append = \lambda [].(\lambda L.L)</math>
<math>append = \lambda (h:t).(\lambda L.h:append(t, L))</math>
Представленная запись не очень читабельна, поэтому использоваться она будет только в крайних случаях по необходимости.
|