- •1Базовые функции обработки списков.
- •2Определение и вызов функций с помощью λ-выражений. Λ-список, λ-преобразование. Свободные и связанные переменные. Функция defun
- •3Локальные определения (форма let).
- •4Функции более высокого порядка. Функциональный аргумент, функциональное значение. Способы композиции функций.
- •5Автоматическое управление памятью в Лиспе. «Сборка мусора».
- •11Какую (двоякую) роль играет в Лиспе функция eval?
- •12Возвращение функцией нескольких величин.
- •13Базовые функции Лиспа.
- •14Опишите три варианта предиката равенства в Лиспе.
- •1Равенство в Прологе.
- •2Встроенные предикаты. Предикаты взаимодействия.
- •4Аппарат вычислений. Обработка списков.
- •5Аппарат вычислений. Рекурсивные определения в Прологе.
- •6Аппарат вычислений. Управление откатом: отсечение.
- •7Аппарат вычислений. Поиск в глубину с возвратом.
- •8Аппарат вычислений. Вывод и процедура отката.
- •9Аппарат вычислений. Процедура унификации в Прологе.
- •10Синтаксис данных (термы и основные объекты Пролога).
- •11Структура программы в языке Пролог (синтаксис языка).
- •12Логическая и управляющая компоненты Пролога.
- •14Общая характеристика языка Пролог.
10Синтаксис данных (термы и основные объекты Пролога).
Объектами Пролога являются
имена (начинаются со строчной буквы), строки символов (заключаются в апострофы) и числа - константные объекты или константы; например, автомобиль, дом, иван, 'a+b', 'X', 123;
переменные - могут принимать значения других объектов, и мы их будем писать прописными латинскими буквами: например, X, A, W ;
списки - их элементами являются любые объекты; списки мы заключаем в квадратные скобки, разделяя элементы запятыми; например, [] - пустой список (он является константой, мы его будем обозначать также nil и любой список завершать этим элементом, чтобы показать конец списка), [a, b, c, nil] - список, состоящий из трех констант a, b и c ; [X, [b, Y, 'X', nil], nil] - список, состоящий из двух элементов, первый из которых - переменная X, а второй - список из трех элементов: имени b, переменной Y и строки 'X'.
Теперь индуктивно введем понятие терма. Термами являются объекты Пролога. Кроме того, термами являются составные термы. Составной терм образуется из имени функции и списка аргументов (термов Пролога) в круглых скобках. Синтаксически составной терм имеет вид
f(t1,..., tn),
где f - имя n -арного функтора, а - аргументы.
Примерами составных термов являются: холодный (вода), отец (иван, петр).
11Структура программы в языке Пролог (синтаксис языка).
Всего вТП существует семь разделов, из которых только один (при работе в Турбо-оболочке) или два (при создании автономной программы) является обязательными. Наиболее часто используются следующие разделы:
- раздел определения типов данных domains (необходим в том случае, если в программе используются нестандартные типы данных);
- раздел определения предикатов predicates(необходим в том случае, если в программе используются предикаты, определяемые пользователем);
- основной раздел clauses, содержащий факты и правила;
- раздел goal, в котором определяется цель (обязателен в том случае, если предполагается автономное использование Пролог-программы).
Кроме того существуют следующие разделы: database, позволяющий использовать в Проллог-программах базы данных;
global domains и global predicates - применяемые при построении много файловых Пролог-программ.
Каждый раздел начинается с ключевого слова – названия раздела. На последовательность разделов накладывается единственное ограничение: разделы-описания объектов и отношений должны располагаться в программе до их использования.
12Логическая и управляющая компоненты Пролога.
Логическая компонента - это множество утверждений, составляющей программу: факты, правила, запросы.
Она описывает задачу, вернее ее логическую спецификацию, которую необходимую решить.
Управляющая компонента - это стратегия исполнения. Она описывает метод решения задачи.
Процесс решения задачи представляет собой доказательство истинности или ложности некоторого утверждения, являющегося запросом. В рамках данных совокупностей фактов и правил.
Для выполнения данного доказательства имеется встроенный в Пролог механизм логического вывода, который и является управляющей компонентой