Математическое введение в декларативное программирование. Зюзысов В.М. - 44 стр.

UptoLike

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

(с переменными X1, ..., Xm) к программе P понимается как требование вычислить все зна-
чения переменных X1, ..., Xm, при которых утверждения A1, ... и An логически следуют из
утверждений, содержащихся в P.
Пример простейшей программы на Прологе выглядит так:
member(X, [X|_]).
member(X, [_|T]):-
member(X,T).
Эту программу можно прочитать так: «X является членом списка, если он совпадает с го-
ловой списка, или является членом хвоста списка». В этой программе объявлен один пре-
дикат
member
.
Обычно Прологсистема работает в форме диалога с пользователем. Утверждение,
которое требуется доказать, вводится с клавиатуры.
Для данной программы можно задавать различные вопросы Пролог системе. Вызов
?- member([2,[1,2,3]).
означает вопрос «2 является элементом списка [1,2,3]?».
Пролог ответит
Yes
На более сложный вопрос
?- member([X,[1,2,3]).
(интерпретируется как «для какого X верно, что он является членом списка?») последуют
ответы
X=1;
X=2;
X=3
Пример из 6.10 запишется в виде следующей программы на Прологе.
m(X):-
f(X,Y).
s(Y,W):-
f(X,Y),f(X,W).
b(X,Y):-
s(X,Y),m(X).
f(john,harry).
f(john,sid).
f(sid,liz).
?- b(Z,harry).
Опишем более систематично процесс программирования на языке Пролог.
Решение задач. Конечной целью составления компьютерной программы является
создание инструмента, предназначенного для решения задачи из некоторой прикладной
области. Прикладная область - это некоторая абстрактная часть мира или область знаний.
Структура прикладной области состоит из значимых для этой области сущностей, функ-
ций и отношений. В удачной компьютерной программе структура прикладной области
моделируется таким образом, что поведение этой программы во время выполнения будет
отражать какие-то существенные аспекты данной структуры. К примеру, отношение, су-
ществующее между некоторыми сущностями прикладной области, должно, по аналогии,
соблюдаться и для обозначений, которые представляют эти сущности в программе, моде-
лирующей эту область.
44