Описание слайда:
Задача.
В автомобильных гонках три первых места заняли Алеша, Петя и Коля. Какое место занял каждый из них, если Петя занял не второе и не третье место, а Коля - не третье?
predicates
name(symbol)
mesto(integer)
result(symbol, integer)
solve(symbol,integer,symbol,integer,symbol,integer)
clauses
name(alesha). name(petya). name(kolya).
mesto(1). mesto(2). mesto(3).
result(X,Y):-name(X),X=petya,mesto(Y),Y<>2,Y<>3.
result(X,Y):-name(X),X=kolya,mesto(Y),Y<>3.
result(X,Y):-name(X),X=alesha,mesto(Y).
solve(X1,Y1,X2,Y2,X3,Y3):-X1=petya,result(X1,Y1),
X2=kolya,result(X2,Y2),
X3=alesha,result(X3,Y3),
Y1<>Y2,Y2<>Y3,Y1<>Y3.
goal
solve(N1,M1,N2,M2,N3,M3),write(N1,' ',M1,'\n',N2,' ',M2,'\n',N3,' ',M3).