Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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. |