СОДЕРЖАНИЕ

Введение. Классификация языков программирования

1. Настройка используемого программного обеспечения

1.1 Программное обеспечение для Лиспа

1.2 Программное обеспечение для Пролога

2. Функциональное программирование. Основы языка Lisp

2.1 Типы данных в Clisp

2.2 Встроенные функции

       2.2.1 Арифметические функции

       2.2.2 Функции обработки списков

2.3 Определение функций пользователем

       2.3.1 Лямбда-функции

       2.3.2 Определение функции с именем

       2.3.3 Задание параметров в лямбда-списке

2.4 Предикаты

2.5 Псевдофункция SETQ

2.6 Последовательные вычисления

2.7 Разветвление вычислений

2.8 Комментарии

2.9 Интерпретатор языка Лисп EVAL

2.10 Функции ввода-вывода

2.11 Рекурсия

       2.11.1 Обработка ошибок и трассировка функций

       2.11.2 Простая рекурсия

       2.11.3 Использование накапливающих параметров

       2.11.4 Параллельная рекурсия

       2.11.5 Взаимная рекурсия

2.12 Внутреннее представление s-выражений

2.13 Точечная пара

2.14 Функционалы

       2.14.1 Аппликативные (применяющие) функционалы

       2.14.2 Отображающие функционалы или MAP-функции

3. Логическое программирование. Основы языка Пролог

3.1 Факты и правила

3.2 Операции в SWI-Prolog

3.3 Предикаты ввода-вывода, комментарии

3.4 Поиск решений Пролог-системой

3.5 Отладка и трассировка

       3.5.1 Отладка в текстовом режиме

       3.5.2 Отладка в графическом режиме

3.6 Данные в Прологе

3.7 Семантика Пролога

       3.7.1 Порядок предложений и целей

       3.7.2 Пример декларативного создания программы

3.8 Рекурсия

3.9 Внелогические предикаты управления поиском решений

       3.9.1 Откат после неудач

       3.9.2 Ограничение перебора – отсечение

3.10 Циклы, управляемые отказом

3.11 Списки

       3.11.1 Голова и хвост списка

       3.11.2 Предикаты для работы со списками

       3.11.3 Сортировка списков

       3.11.4 Компоновка данных в список

       3.11.5 Решение логических задач с использованием списков

3.12 Строки

3.13 Предикаты для работы с файлами

3.14 Динамические базы данных

       3.14.1 Добавление и удаление предложений

       3.14.2 Заполнение динамической базы данных фактами из файла, сохранение динамической базы данных в файле

3.15 Cоздание меню

3.16 Операции над структурами данных

       3.16.1 Деревья

       3.16.2 Графы