Пролог: X - дедушка Y - PullRequest
       43

Пролог: X - дедушка Y

1 голос
/ 08 декабря 2010

Предположим, что следующие факты уже введены в базу данных Пролога:

father(X, Y)     // X is the father of Y
mother(X, Y)     // X is the mother of Y
male(X)          // X is a male
female(X)        // X is a female
parent(X, Y)     // X is a parent of Y
diff(X, Y)       // X and Y are different

(1) Теперь добавьте правило Пролога для grandpa_of (X, Y), где "X - дедушка Y"

(2) Добавить еще одно правило для родного брата (X, Y), где "X - родной брат Y"

Мои мысли:

Вопрос 1:

Я запутался в том, как мне найти родителей родителей, все, что у меня пока есть, это

grandpa_of (X, Y): - мужчина (X), ...

Вопрос2:

родной брат (X, Y): - родитель (P, X), родитель (P, Y), diff (X, Y)

Ответы [ 2 ]

6 голосов
/ 16 марта 2011

Я думаю, что Джейсон означает grandpa_of(X,Y) :- father(X,P), parent(P,Y).

2 голосов
/ 08 декабря 2010

Прошло много времени ... Первый пример примерно такой:

grandpa_of(X, Y) :- father(X, P), father(P, Y).

Слишком долго ...: -P

...