Основные элементы языка Пролог |  |
Содержание
Синтаксис
Пролог-программа состоит из термов.
Терм - это последовательность литер.
Виды литер:
- A,B,C,...,X,Y,Z (прописные)
- a,b,c,...x,y,z (строчные)
- 0,1,...,9 (цифры)
- +,-,*,/,?,... (специальные знаки)
Терм:
- константа
- переменная
- структура
- <p>
Константы - это поименнованные конкретные объекты или отношения.
</p><p>
Атомы - это последовательность букв и цифр и
начинается со строчной литеры.
</p><p>
Пример:
Атомы |
Не атомы |
y |
(Т-Пролог) |
:- |
?- |
'Don-Karlos' |
Дон-Карлос |
don_Karlos |
'32-30-BMV' |
3230 BMV |
argentum |
серебро |
-35 |
3-5 |
</p> - <p>
Переменные записываются с прописной литеры или '_'.
</p><p>
Переменные похожи на константы, но служат для представления объектов.
</p>
- <p>
Структура - это единый обьект.
</p><p>
Структура состоит из двух частей:
</p><p>
- функтор, который записывается перед скобками
- компонент, который записывается в скобках
</p><p>
Пример:
дает(«Петр», «Ольга», книга). |
дает(«Петр», «Ольга», книга(воскресенье, «Толстой»)). |
дает(«Петр», «Ольга», книга(воскресенье, автор(«Лев», «Толстой»))). |
</p>
Факты, правила
Пролог-программа - это совокупность утверждений.
Утверждение состоят из целей.
Основная операция Пролога - это доказательство целей утверждения.
Типы утверждений:
В конце утверждения ставится “.”
Факт - это одиночная цель, которая истина.
ценное(серебро).
pere(“Jan”, “Alex”).
Правило - это одна головная цель и одна или более подцелей,
которые истинны при некоторых условиях.
спортсмен(X) :- футболист(X).
Оператор правила ':-' читается так 'при условии что'.
«Некто X спортсмен при условии, что - он футболист»
Правило записи:
- <p>
имена отношений - это константы(атомы)
</p>
- <p>
цель -это структура:
</p><p>
< имя отношения >(< арг 1 >, < арг 2 >,...)
</p>
- <p>
Синонимами являются:
</p><p>
- имя отношения
- функтор
- предикат
</p>
Оператор правила ':-' разделяет заголовок и тело правила:
- слева от ':-' - заключение правила
- справа от ':-' - посылка
Подцели в утверждении могут образовывать «конъюнкцию целей».
кот(X) :- родитель(X.Y),кот(Y).
Оператор ',' обозначает логическую операцию конъюнкция (умножение).
Запросы
Запрос - это целевое утверждение.
Запрос в базу данных не входит.
Запрос записывается в операторной форме:
? - <утверждение>
Пример 4:
кот( барс ). |
кот( анфиса ). |
кот( пушок ). |
кот(X) :- родитель(X, Y),кот(Y). |
родитель( пушок, анфиса). |
родитель( пушок, барс). |
Все утверждения с одинаковым предикатным символом должны быть
записаны подряд.
В Прологе необходимо учитывать порядок следования утверждений:
самое главное должно быть первым.
Запросы:
? - кот( барс ). |
«Барс - кот ?» |
да |
? - кот(X). |
«Назвать всех котов ?» |
X=барс |
X=анфиса |
X=пушок |
3 решения |
? - родитель( _ , _ ). |
«Есть родители ?» |
да |
? - родитель( Z , барс ). |
« Чей родитель Барс ?» |
Z=пушок |
Смотрите так же
Последняя модификация: 22.08.05 22:08 Цитирование материалов моего сайта приветствуется! при условии видимой действующей! гиперссылки на мой сайт. [Ссылки] Если Вы нашли опечатку на этой странице, пожалуйста, выделите ее мышью и нажмите Ctrl+Enter. Сделаем язык чище! (c) Yuri Popoff, 2004 - 2008, popoff.donetsk.ua, style.donetsk.ua |
|