Одной из многих непривычных для C/C++ и SQL программистов особенностью Пролога (по крайней мере его классических реализаций) является то, что и сама программа (алгоритм), и обрабатываемые данные являются совершенно однородными объектами, так что программа может легко генерировать новые участки себя самой или удалять какие-то блоки. Для сравнения можете обратиться к разделу о метапрограммировании на языке C/C++.
Итак, программа на Прологе есть совокупность утверждений. Иногда утверждение называется предложением (clause). Основная операция Пролога - доказательство целей, входящих в утверждения.
Существуют два типа утверждений:
факт: это одиночная цель, которая, безусловно, истинна (то есть это аксиома);
правило: состоит из одной головной цели и одной или более хвостовых целей, которые истинны при некоторых условиях.
Примеры фактов:
собака(рекc).
родитель(голди, рекс).
Примеры правил:
собака (X) :- родитель (X,Y),собака (Y).
человек(Х) :-мужчина(Х).
Разница между правилами и фактами чисто семантическая.
© Mental Computing 2010