Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Prolog > как правильно писать?


Автор: megapolis 5.5.2008, 15:43
domains
s=symbol
predicates
parent(s,s)
male(s)
female(s)
father(s)
mather(s)
sister(s,s)
different(s,s)
clauses
parent(stepa,nastia).
parent(natasha,nastia).
parent(stepa,ira).
parent(natasha,ira).
parent(stepa,seresha).
parent(natasha,seresha).
male(stepa).
male(seresha).
female(natasha).
female(nastia).
female(ira).
father(X):-parent(X,_),male(X).
mather(X):-parent(X,_),female(X).
sister(X,Y):-parent(Z,X),parent(Z,Y),female(X),female(Y),different(X,Y).
different(X,Y):-not(X=Y).

1 Как понять {different(X,Y):-not(X=Y).}?
2 Почему когда запускается программа, Goal:sister(X,Y) the solution is 4; a когда {sister(X,Y):-parent(_,X),parent(_,Y),female(X),female(Y),different(X,Y).} Goal:sister(X,Y) the solution is 8?Why
3 Как писать, чтобы получить результат? Goal:sister(X,Y) the solution just like X=natia, Y=ira. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)