1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
predA(1).
predA(2).
predA(3).
predA(4).
predA(5).
predA(6).
predB(2).
predB(5).
predC(6).
predC(8).
bornes(Pred) :-
P =..[Pred, X],
setof(X, call(P), L),
sort(L, [Min| Rest]),
last_item(L, Max).
last_item([], _) :-
!,
fail.
last_item([X], X) :-
!.
last_item([_|Z], X) :-
last_item(Z, X),!,
assertz(user_1(X)),
tell('user_1.pro'),
listing(user_1),
told,!.
max(Pred_1,Pred_2) :-
consult('user_1.pro'),
consult('user_2.pro'),
P =..[Pred_1, X],
setof(X, call(P), L),
sort(L,[Max|_]),
assertz(user_1(Max)),
P =..[Pred_2, X],
setof(X, call(P), L),
sort(L,[Max|_]),
assertz(user_2(Max)),
tell('user.pro'),
listing(user_1),
listing(user_2),
told,u.
u :-
user_1(X),
user_2(Y),
proc(X,Y).
proc(X,Y):-X>Y,!,write('user_1 Max'). % Si Valeur max de user_1 > user_2
proc(_,_):-write('user_2 Max'). % Si Val max de user_2 < user_1 |
Partager