В учебном пособии излагаются основные понятия и базовые механизмы функционального языка программирования Лисп, ориентированного на решение задач обработки символьных данных. Рассматриваются приемы рекурсивного программирования, в том числе с использованием функционалов. Подробно разбираются примеры лисп-программ. В пособие включено также описание заданий практикума по программированию на языке Лисп, проводимого для студентов факультета ВМК МГУ.
Скачать. Формат pdf, размер 840 KB.
1. | Базовый Лисп. | 5 |
1.1. | Атомы и списки, функции. | 5 |
1.2. | Базовый набор функций. | 8 |
1.3. | Определение функций. | 13 |
1.4. | Встроенные функции. | 17 |
1.5. | Рекурсивные функции. | 22 |
1.6. | S-выражения. | 27 |
1.7. | Внутреннее представление S-выражений. | 31 |
1.8. | Лисп-программа. | 36 |
2. | Рекурсивное программирование. | 41 |
2.1. | Простая рекурсия. | 41 |
2.2. | Косвенная рекурсия. | 44 |
2.3. | Параллельная рекурсия. | 46 |
2.4. | Накапливающий параметр. | 51 |
2.5. | Рекурсия более высокого порядка. | 55 |
2.6. | Задачи на программирование рекурсии. | 59 |
3. | Функционалы. | 62 |
3.1. | Понятие функционала. | 62 |
3.2. | Встроенные функционалы. | 64 |
3.3. | Замыкание функционального аргумента. | 67 |
3.4. | Применение функционалов. | 71 |
3.5. | Функционалы с функциональным значением. | 77 |
4. | Дополнительные возможности. | 80 |
4.1. | Список свойств атома. | 80 |
4.2. | Функции ввода, вывода и работы с символами. | 84 |
4.3. | Общий вид функций cond, defun, let. | 88 |
4.4. | Определение особых функций. | 91 |
4.5. | Макросредства. | 95 |
4.6. | Циклы, блоки и присваивания. | 100 |
5. | Задания практикума. | 104 |
6. | Литература. | 111 |
Приложение: Встроенные функции языка Лисп. | 112 |