Шаг 84.
Основы языка Haskell.
Простая рекурсия на списках. Именованные образцы
На этом шаге мы рассмотрим это понятие.
В рекурсивных функциях в качестве аргумента иногда удобно использовать именованный образец.
- Определение ([1, с.124]).
-
Именованный образец - это образeц, представляющий собой составной объект сложного типа, к которому имеется возможность обратиться как к целому, так и к его частям:
<Имя_образца>@<Составные_части_образца>
Пример. Функция, дублирующая первый элемент списка
(x:xs), который обозначен буквой
l, имеет следующий вид:
Замечание (по использованию сложных типов рекурсии).
В функциональном языке программирования LISP сложные типы рекурсии представляли собой удобное средство не только для перемещения
по многоуровневому списку и конструированию нового списка, но и для "погружения" на определённые уровни списков, являющихся элементами исходного.
Жёсткая типизация языка Haskell, следствием которой структура многоуровневых списков стала ограниченной (элементы многоуровневого списка - это списки одного уровня погружения), привела к отказу от
использования сложных типов рекурсии на многоуровневых списках.
Итак, данный вид рекурсии остаётся рассматривать только на числовых структурах, либо строить собственный тип данных "Многоуровневый список", подобный имеющемуся в языке LISP.
(1)Душкин Р.В. Функциональное программирование на языке Haskell. - М.: ДМК Пресс, 2007. - 608 с.
На следующем шаге мы рассмотрим несколько демонстрационных примеров.
Предыдущий шаг
Содержание
Следующий шаг