DeepThinker
Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
|
Prolog - PROgramming in LOGic, язык, спуциально созданный для логических вычислений. Интерпретируемый. Синтаксис у всех реализаций различается, часто используется Turbo Prolog. Суть языка: Объявлятся несколько фактов из окружающего мира (их обычно из базы данных импортируют), например: (классика [sm=1.gif])
has_wings(eagle); has_claws(eagle); has_wings(bat);
объявляется несколько теорем:
is_bird(X) :- has_wings(X), has_claws(X);
и составяется запрос
?- is_bird(eagle) Yes
?- is_bird(bat) No
Ответ подучаеся на основе алгоритма резолюции (см. учебник по матлогике). Еще пример:
parent(Kate, Ann); Kate - мать Ann parent(John, Ann); parent(Sally, John);
grandparent(X, Y) :- parent(X, Z), parent(Z, Y);
?- parent(X, Ann) X = Kate X = John 2 match(es) found
?- grandparent(Sally, Ann) Yes
?- grandparent(X, Y) X = Sally Y = Ann 1 match(es) found.
|