1. Функциональное программирование. Основы Лиспа



Содержание1. Функциональное программирование. Основы Лиспа. Особенности функционального программирования
1) Природа данных
2) Самоописание обработки символьных выражений
3) Подобие машинным языкам
Основные понятия
Система программирования
Истинностные значения
Тип данных
Общее представление о языке Лисп
Кроме функций-констант вполне допустимы функции-переменные
Интегральность ограничений на пространственно-временные характеристики
Уточняемость решений
Динамическое управление вычислениями и конструированием программ
2. Списки в Лиспе Списки. Функции для работы со списками
CAR обеспечивает доступ к первому элементу списка — его "голове".
EQ выполняет проверку атомарных
Многократные CAR-CDR
Управляющие структуры (предложения)
Простая рекурсия
Другие виды рекурсии
3. Функционалы Функционалы и отображения
Применяющие функционалы
Функционал APPLY Предположим мы хотим объединить в один список несколько вложенных списков, т.е. из
Пример: Определим функцию, которая рассчитывает среднее списка чисел
Часто apply используют вместе c марсаr.
Можно определить более сложную функцию countatom, которая считает элементы-атомы в любом списке.
Функционал FUNCALL
Здесь fn - функция с n aргументами.
Эта функция имеет вид
Встроенные функционалы
Лямбда выражения
Композиции функционалов, фильтры, редукции
Сцепление результатов отображения
Фильтр отличается от обычного отображения тем, что окончательно собирает не все результаты
Выводы по применимости функционалов