Программирование на языке Пролог для искусственного интеллекта
Шрифт:
Интересно посмотреть, что произойдет, если мы попытаемся запрограммировать отношение
Теперь уже цель
породит ответ:
Сложение ни разу
Такая версия
и она и в этом случае будет давать те же результаты. С помощью
Итак:
• Для выполнения арифметических действий используются встроенные процедуры.
• Арифметические операции необходимо явно запускать при помощи встроенной процедуры
• К моменту выполнения операций все их аргументы должны быть конкретизированы числами.
• Значения арифметических выражений можно сравнивать с помощью таких операторов, как
3.16. Определите отношение
так, чтобы
3.17. Определите предикат
так, чтобы
3.18. Определите предикат
так, чтобы
3.19. Определите предикат
который принимает значение истина, если
3.20. Определите предикат
где
3.21. Определите процедуру
которая, с помощью перебора, порождает все целые числа X, отвечающие условию N1≤X≤N2.
3.22. Определите операторы 'если', 'то', 'иначе' и ':=" таким образом, чтобы следующее выражение стало правильным термом:
Выберите приоритеты так, чтобы 'если' стал главным функтором. Затем определите отношение 'если' так, чтобы оно стало как бы маленьким интерпретатором выражений типа 'если-то-иначе'. Например, такого
где
Резюме
• Список — часто используемая структура. Он либо пуст, либо состоит из головы и хвоста, который в свою очередь также является списком. Для списков в Прологе имеется специальная нотация.
• В данной главе рассмотрены следующие операции над списками: принадлежность к списку, конкатенация, добавление элемента, удаление элемента, удаление подсписка.
• Операторная запись позволяет программисту приспособить синтаксис программ к своим конкретным нуждам. С помощью операторов можно значительно повысить наглядность программ.
• Новые операторы определяются с помощью директивы
• Как правило, с оператором не связывается никакой операции; оператор это просто синтаксическое удобство, обеспечивающее альтернативный способ записи термов.