Micro Lisp. Основные понятия, структуры и функции. Яшин Л.З. - 29 стр.

UptoLike

Составители: 

29
Применяющий функционал FUNCALL
FUNCALL вызывает функцию, переданную как параметр, с остальными
аргументами:
(FUNCALL function x1 x2 … xN) Ù (function x1 x2 … xN)
Например:
(FUNCALL ‘+ 2 3) Ù (+ 2 3)
Основные типы MAP-функций
Есть еще один класс функций, которые некоторым способом отображают список
(последовательность) в новую последовательность или порождают какой-либо другой
эффект. Имена таких функций начинаются на MAP и их семейство получило название
«отображающие функционалы». Вызов имеет вид:
(MAPx fn l1 l2 … lN)
l1 … lNсписки, fnфункция от N аргументов.
Наиболее часто MAP-функции применяются к одному аргументу:
(MAPx fn l1)
MAPCARповторяет вычисление функции на элементах списка
(MAPCAR fn ‘(x1 x2 … xN)) Ù (LIST (fn ‘x1) (fn ‘x2) … (fn xN))
MAPLISTповторяет вычисление на хвостовых частях списка, начиная с самого
списка:
(MAPLIST fn ‘(x1 x2 … xN)) Ù (LIST (fn ‘(x1 x2 … xN)) (fn ‘(x2 x3 … xN)) … (fn
‘(xN)))
Функции MAPC и MAPL аналогичны MAPCAR и MAPLIST, однако, они не
объединяют результаты. Возникающие резхультаты просто теряются.
                                        29

Применяющий функционал FUNCALL
      FUNCALL вызывает функцию, переданную как параметр, с остальными
аргументами:
(FUNCALL function x1 x2 … xN) Ù (function x1 x2 … xN)
      Например:
(FUNCALL ‘+ 2 3) Ù (+ 2 3)

Основные типы MAP-функций
       Есть еще один класс функций, которые некоторым способом отображают список
(последовательность) в новую последовательность или порождают какой-либо другой
эффект. Имена таких функций начинаются на MAP и их семейство получило название
«отображающие функционалы». Вызов имеет вид:
       (MAPx fn l1 l2 … lN)
l1 … lN – списки, fn – функция от N аргументов.
Наиболее часто MAP-функции применяются к одному аргументу:
       (MAPx fn l1)

MAPCAR – повторяет вычисление функции на элементах списка
(MAPCAR fn ‘(x1 x2 … xN)) Ù (LIST (fn ‘x1) (fn ‘x2) … (fn xN))

MAPLIST – повторяет вычисление на хвостовых частях списка, начиная с самого
списка:
(MAPLIST fn ‘(x1 x2 … xN)) Ù (LIST (fn ‘(x1 x2 … xN)) (fn ‘(x2 x3 … xN)) … (fn
‘(xN)))
        Функции MAPC и MAPL аналогичны MAPCAR и MAPLIST, однако, они не
объединяют результаты. Возникающие резхультаты просто теряются.