Devoir-Paradigme de Programmation
Devoir-Paradigme de Programmation
Devoir-Paradigme de Programmation
On considère la base de données suivante, qui décrit les employés d'une entreprise (par
exemple, pour la première clause, Samir est dans le département des ventes, a une fonction
de secrétaire général, est dans l'entreprise depuis 6 ans, gagne 1000000 D.A par an, et a
pour chef Hamid).
chef(employe(Samir,ventes,secretaireGeneral,6,1000000),hamid).
chef(employe(hamid,ventes,directeur,2,150000),omar).
chef(employe(omar,direction,president,12,300000),omar).
chef(employe(khaled,achats,direction,1,140000),omar).
chef(employe(samia,achats,secretaire,11,100000),omar).
chef(employe(imene,achats,secretaire,11,10000),omar).
chef(employe(fateh,achats,stagiaire,1,2000),khaled).
(on utilisera la fonction is pour réaliser les calculs, par exemple N is N+1)
max(X,Y,X) :- X >= Y, !.
max(X,Y,Y).
La façon standard de représenter le not est ainsi de la forme (fail renvoyant un échec):
not(X) :- X, !, fail.
not(X).
Attention, cette négation n'est pas une négation logique standard, et peut fonctionner
étrangement du fait de son mécanisme.
S :- (P -> Q ; R)
5) Manipulations de listes