Программирование в Логике. Чанышев О.Г. - 29 стр.

UptoLike

Составители: 

57
f1(1,"String1").
f1(2,"String2").
f1(3,"String3").
f1(4,"String4").
f2(1,"String1").
f2(0,"String2").
f2(-5,"String3").
f2(4,"String4").
% Найти первую комбинацию различных фактов,
% удовлетворяющих условию.
% Используется "естественный откатбэктрегинг"
% для поиска единственного успешного решения.
search:-
f1(X1,S1),
f2(X2,S2),
X2<X1,write(X1," ",S1," ",X2," ",S2),nl.
% Найти все комбинации разных фактов,
% удовлетворяющих условию
% Используется ОПНоткат после неудачи.
search2:-
f1(X1,S1),
f2(X2,S2),
X2<X1,write(X1," ",S1," ",X2," ",S2),nl,
fail.
search2:-!.
% Удовлетворяют ли условию 1-е 2 разных факта?
% Здесь важно, в каком месте использован откат. Если
он
% был бы поставлен после сравнения, то было бы найдено
% единственное решение, как в предикате search.
search3:-
f1(X1,S1),
f2(X2,S2),!,
X2<X1,write(X1," ",S1," ",X2," ",S2),nl.
58
Заключение
Со времени первой реализации (1973) Пролог проделал ог-
ромный путь и к настоящему времени в ипостаси PDC Visual
Prolog v.5.2 стал одним из наиболее технологичных средств разра-
ботки программного обеспечения для различных областей челове-
ческой деятельности. Тем не менее (многое зависит от мощности
конкретного компьютера), на нем не стоит писать ПО для систем,
принципиально требующих
особого быстродействия, а также не
стоит решать задачи сугубо вычислительного характера (для этой
цели обратитесь к вечно молодому прадедушкеФортрануили
пакету MathLab).
Достаточно сосредоточиться на логической стороне задачи,
и тут же станет очевидной истинная сила Пролога, заключающая-
ся в наглядности, красоте и простоте программ. Основываясь на
естественных для человеческого мышления логических
принци-
пах, он будет неутомимо искать истинное решение, перебирая все
возможные комбинации правил.
Начните писать программы в среде PDC Visual Prolog v.5.2 и
вряд ли вы захотите сменить это средство на какое-либо другое.
f1(1,"String1").                                                                   Заключение
f1(2,"String2").
f1(3,"String3").                                                Со времени первой реализации (1973) Пролог проделал ог-
f1(4,"String4").                                          ромный путь и к настоящему времени в ипостаси PDC Visual
f2(1,"String1").                                          Prolog v.5.2 стал одним из наиболее технологичных средств разра-
f2(0,"String2").                                          ботки программного обеспечения для различных областей челове-
f2(-5,"String3").                                         ческой деятельности. Тем не менее (многое зависит от мощности
f2(4,"String4").                                          конкретного компьютера), на нем не стоит писать ПО для систем,
% Найти первую комбинацию различных фактов,               принципиально требующих особого быстродействия, а также не
% удовлетворяющих условию.                                стоит решать задачи сугубо вычислительного характера (для этой
% Используется "естественный откат – бэктрегинг"          цели обратитесь к вечно молодому прадедушке – Фортрану – или
% для поиска единственного успешного решения.             пакету MathLab).
search:-                                                        Достаточно сосредоточиться на логической стороне задачи,
f1(X1,S1),                                                и тут же станет очевидной истинная сила Пролога, заключающая-
f2(X2,S2),                                                ся в наглядности, красоте и простоте программ. Основываясь на
X2