logo search
TurboProlog / Документация / TOM_1

Как представлять факты и правила в качестве процедур

Можно просто рассматривать правила Пролога как определения процедур.

Например правило:

любит(Билл,Что_то) :- любит(Синди,Что_то).

означает "Для того чтобы доказать, что Билл любит что-то необходимо дока-

зать, что Синди любит это."

Имея это в виду, вы можете посмотреть как предикаты типа

say_hello :- write("Привет"), nl.

и

greet :-

makewindow(1,2,2,"Приветствие",0,0,25,80),

write("Привет, земляне !"),

nl.

соответствуют подпрограммам и функциям в других языках программирования.

Вы можете рассматривать даже факты Пролога, как процедуры; например

факт

любит(билл,пастила).

означает

Для того чтобы доказать, что Билл любит пастилу, не нужно ничего де-

лать, и если аргументы Кто и Чего в вашем запросе любит(Кто,Чего) - сво-

бодные переменные, то вы можете присвоить им значения Билл и пастила, со-

ответственно.

Вы могли встречаться в других языках с некоторыми процедурами прог-

раммирования, такими как условное ветвление, булевы выражения, безуслов-

ные переходы и возвращение результата вычисления. В следующих разделах,

для того чтобы повторить то что мы уже прошли с процедурной точки зрения,

показано как Пролог может представлять те же самые функции.