ОТОБРАЖАЮЩИЕ ФУНКЦИОНАЛЫ
Важный класс функционалов в практическом программировании на языке Лисп образуют отображающие функции или МАР-функции. МАР-функционалы являются функциями, которые некоторым образом отображают список (последовательность) в новую последовательность или порождают побочный эффект, связанный с этой последовательностью. Имена МАР- функций начинаются на MAP, и их вызов имеет вид (МАРх fn l2... lN)
Здесь l1... lN - списки, a fn - функция от N аргументов. Как правило, МАР-функция применяется к одному аргументу-списку, т.е. fn является функцией от одного аргумента: (МАРх f n список) Существуют два основных типа МАР-функций. Одни из них применяют функциональный аргумент fn таким образом, что его аргументами будут последовательные CAR аргумента-списка (иными словами, fn применяется к элементам списка). Другие применяют функциональный аргумент к последовательным CDR списка.
Результатом этих повторяющихся вычислений будет список, состоящий из результатов последовательных применений функции. Кроме того, функции отличаются друг от друга способом формирования результата. Во всех случаях число аргументов-списков должно совпадать с числом аргументов применяемой для вычислений функции. Рассмотрим основные типы МАР-функций.