Vous êtes sur la page 1sur 15

domains person ,activity=symbol predicates likes(person , activity) clauses likes(Ellen ,tennis). likes(john ,football). likes(tom ,baseball). likes(eric ,running).

likes(mark ,tennis). likes(bill ,X) :- likes(tom ,X).

domains brand ,color = symbol age ,price = integer mileage = real predicates car(brand ,mileage ,age ,color ,price) clauses car(cheysler,130000,3,red,12000). car(ford,9000,4,grey,25000). car(datsun,8000,1,red,30000).

domains diseases ,indication=symbol predicates symptom(diseases ,indication) clauses symptom(chickenpox ,high_fever). symptom(chickenpox ,chills). symptom(flu ,chills). symptom(cold ,mild_body_ache). symptom(flu ,severe_body_ache). symptom(cold ,running_nose). symptom(flu ,running_nose). symptom(flu ,moderate_cough).

domains slist = symbol* ilist = integer* rlist = real* clist = char* predicates member(slist ,symbol) member(ilist ,integer) member(clist ,char) member(rlist ,real) clauses member([X|Tail] ,X). member([Y|Tail] ,X):- member(Tail ,X).

domains ilist = integer* slist = symbol* clist = char* rlist = real* predicates delete(ilist ,integer ,ilist). delete(rlist ,real ,rlist). delete(clist ,char ,clist). delete(slist ,symbol ,slist). clauses delete([H|Tail] ,H ,Tail). delete([H|Tail1] ,X ,[H|Tail2]):delete(Tail1 ,X ,Tail2).

trace domains N, Res = integer predicates fact(Integer , Integer) clauses fact(0,1). fact(N, Res):N>0, N1=N-1, fact(N1, Res1), Res = Res1*N.

domains disease, indication = symbol patient = string predicates hypothesis(patient, disease) symptom(patient, indication) response(char) go clauses go:write("What is the patient's name?"), readln(Patient), hypothesis(Patient, Disease), Write(Patient, " probably has ", Disease, "."),nl. go:Write("Sorry, I don't seem to be able to "), Write("diagnose the disease"),nl. Symptom(Patient, fever):Write("Does ", Patient, " have fever(?)"), response(Reply), Reply = 'Y'. hypothesis(Patient, flu):symptom(Patient, fever). response(Reply):readchar(Reply), write(Reply),nl.

domains integerlist = integer* predicates append(integerlist ,integerlist ,integerlist) writelist(integerlist) clauses append([] ,List ,List). append([X|L1] ,List2 ,[X|L3])if append(L1 ,List2 ,L3). writelist([]). writelist([Head|Tail]) if write(Head) ,nl, writelist(Tail).

domains slist = symbol* ilist = integer* rlist = real* clist = char* predicates length(slist, integer) length(ilist, integer) length(rlist, integer) length(clist, integer) clauses length([], 0). length([H|Tail], N):length(Tail, N1), N = N1 + 1.

trace domains namelist = name* name = integer predicates member(name ,namelist). clauses member(Name ,[Name|_]). member(Name ,[_|Tail])if member(Name, Tail).

trace domains A, B, C = Real predicates sum(Real, Real, Real) clauses sum(A,B,C):C = A + B, write("sum = ").

trace domains N, Result = Real predicates sumN(Real, Real) clauses sumN(1,1). sumN(N,Result):N1 = N-1, sumN(N1, Result1), Result = Result1 + N.

trace domains N, X, Res = Integer predicates emp(Integer, Integer, Integer) clauses emp(X,0,1). emp(X,N,Res) :- N<0, write("No. is INVALID"). emp(X,N,Res) :- N>0, N1 = N - 1, emp(X, N1, Res1), Res = Res1 * X.

domains person=symbol predicates father(person,person) mother(person,person) wife(person,person) son(person,person) daughter(person,person) husband(person,person) female(person) male(person) clauses father(motilal,jawahar). father(motilal,vijaylaxmi). father(motilal,krishna). father(ranjit,tara). father(ranjit,lekha). father(ranjit,rita). father(jawahar,indira). father(feroz,rajiv). father(feroz,sanjay). father(rajiv,rahul). father(rajiv,rahul). father(sanjay,varun). mother(swaruprani,jawahar). mother(swaruprani,vijaylaxmi). mother(swaruprani,krishna). mother(kamla,indira). mother(vijaylaxmi,tara). mother(vijaylaxmi,lekha). mother(vijaylaxmi,rita). mother(indira,rajiv). mother(indira,sanjay). mother(sonia,rahul). mother(sonia,priyanka). mother(menka,varun). female(swaruprani). female(kamla). female(vijaylaxmi). female(indira). female(sonia). female(menka). female(priyanka). female(menka). male(motilal). male(jawahar). male(feroz). male(rajiv).

male(sanjay). male(rahul). male(varun). male(ranjit). male(krishna). husband(motilal,swaruprani). husband(jawahar,kamla). husband(ranjit,vijaylaxmi). husband(feroz,indira). husband(rajiv,sonia). husband(sanjay,menka). wife(X,Y) if husband(Y,X). daughter(X,Y) if father(Y,X) and female(X). son(X,Y) if father(Y,X) and male(X).

Vous aimerez peut-être aussi