Программа и Данные являются Тем же в Прологе?

Я услышал, что в Прологе, программа и данные являются тем же самым. Что это означает?

10
задан John Saunders 4 March 2010 в 12:10
поделиться

4 ответа

Это означает, что ваша программа реализована как набор правил, а данные также реализованы как набор правил - нет различия между правилом, которое вызывает некоторые операции, которые должны произойти (программа), и правило, которое просто возвращает значение данных.

5
ответ дан 3 December 2019 в 19:32
поделиться

Термины относятся к данным, но программа также описывается с помощью терминов.

4
ответ дан 3 December 2019 в 19:32
поделиться

Источник пролога - это просто список правил. Некоторые правила являются просто «данными» - они истинны без дальнейшей обработки.

person(james).
father(james, thomas).

«Джеймс - личность». «Джеймс - отец Фомы».

Эти правила являются данными.

Я могу выполнить запрос к этим данным. Я могу спросить:

?- person(X).

Ответ будет:

X = james.

Или:

?- father(X, thomas).

Ответ будет таким же.

Другие правила нуждаются в дальнейшей оценке.

grandfather(X, Z) :- father(X, Y), father(Y, Z).

Это простая «программа».

Наша дедушка программа вернет истину, если у нас есть правильные данные. Например:

father(james, william).
father(james, tyler).
father(james, thomas).
father(jeff, james).

Если я выполняю следующую программу:

?- grandfather(jeff, X).

Я получаю:

X = william

Я могу попросить пролог продолжить, и я получу X = tyler и X = thomas .

Синтаксис усложняется, но основы остаются прежними. Данные и программа - это всего лишь набор фактов. Искусство пролога заключается в создании правильных правил, которые приводят вычисления к результату.

6
ответ дан 3 December 2019 в 19:32
поделиться
 ?- A=write(B), C=(B is 1+2), Prog = (C, A).
A = write(B),
C = (B is 1+2),
Prog = (B is 1+2, write(B)).

 ?- $Prog.
3
true.
1
ответ дан 3 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: