Программирование на языке ПРОЛОГ для искуственного интеллекта
Синтаксис и семантика Пролог программОбъекты данных
Атомы и числа
Переменные
Имеетребенка( X) :- родитель( X, Y)
Имеетребенка( X) :- родитель( X, _ )
Некто_имеет_ребенка :- родитель( X, Y)
?- Родитель( X, _ )
Структуры
Сопоставление
Процедурная семантика
Пример: обезьяна и банан
Декларативный смысл пролог-программ
Замечания о взаимосвязи между Прологом и логикой
Резюме
Опасность бесконечного цикла
Варианты программы, полученые путем переупорядочивания предложений и целей
Сочетание декларативного и процедурного подходов
СПИСКИ, ОПЕРАТОРЫ, АРИФМЕТИКА
Представление списков
Операторная запись (нотация)
Арифметические действия
Резюме
Некоторые операции над списками
Принадлежность к списку
Сцепление ( конкатенация)
Добавление элемента
Удаление элемента
Подсписок
Перестановки
Использование структур: примеры
Получение структурированной информации из базы данных
Абстракция данных
Планирование поездки
Моделирование недетерминированного автомата
Управление перебором
Ограничение перебора
Эксперимент 1
Задача о восьми ферзях
Программа 2
Программа 3
Заключительные замечания
Резюме
Вычисление максимума
Процедура проверки принадлежности списку, дающая единственное решение
Добавление элемента к списку, если он в нем отсутствует (добавление без дублирования)
Задача классификации объектов
Трудности с отсечением и отрицанием
Резюме
Ввод и вывод
Связь с файлами
Reаd и write
Вывод списков
Формирование термов
Обработка произвольного файла термов