Skip to content

Instantly share code, notes, and snippets.

@fsteeg
Created December 3, 2012 15:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fsteeg/4195746 to your computer and use it in GitHub Desktop.
Save fsteeg/4195746 to your computer and use it in GitHub Desktop.
Imbiss-Aufgabe, Prolog-Kurs
% ein imbiss fuer eine person ist essen
% und trinken das zueinander passt und
% das die person mag
imbiss(Person,Essen,Trinken):-
trinkt(Person,Trinken),
isst(Person,Essen),
passt(Essen,Trinken).
% ------------------ regeln: gerichte
% zu fisch passt nur weisswein
passt(Essen,Trinken):-
fisch(Essen),
Trinken \= weisswein,
Trinken \= nichts,
!,fail.
% zu salat passt kein alkohol
passt(salat,Trinken):-
alc(Trinken),
!,fail.
% generell passt essen zu trinken
passt(Essen,Trinken):-
essen(Essen),
trinken(Trinken).
% ------------------ regeln: getraenke
% tim ist antialkoholiker
trinkt(tim,X):-
trinken(X),
not(alc(X)).
% ev. 'nichts' ausschliessen
% X \= nichts.
% susanne und peter trinken alles
trinkt(susanne,X):-
trinken(X).
% ev. 'nichts' ausschliessen
% X \= nichts.
trinkt(peter,X):-
trinken(X).
% ev. 'nichts' ausschliessen
% X \= nichts.
% marie hat keinen durst
trinkt(marie,X):-
X = nichts.
% ------------------ regeln: essen
% tim isst alles
isst(tim,X):-
essen(X).
% susanne isst weder fisch noch fleisch
isst(susanne,X):-
essen(X),
not(fleisch(X)),
not(fisch(X)).
% peter isst nur pizza
isst(peter,pizza).
% marie isst nur backfisch und pizza
isst(marie,backfisch).
isst(marie,pizza).
% -------------------- bausteine
% verfuegbares essen und trinken
essen(pizza).
essen(lasagne).
essen(salat).
essen(backfisch).
trinken(bier).
trinken(weisswein).
trinken(wasser).
trinken(nichts).
trinken(cola).
alc(bier).
alc(weisswein).
fleisch(lasagne).
fisch(backfisch).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment