HSG |
|
1) Was bedeuten in alleLoesungen(+X,+Aussageform,-Liste) die '+' - und '-' - Zeichen?
2) Gib folgende Wissensbasis in Prolog ein, consultiere sie und schaue dir das Ergebnis mit listing(gefunden). an.
a(1). a(3). a(17). b(2). geloest(X,Ziel):-Ziel,assert(gefunden(X)),fail. geloest(_,_).
3) Stelle nun die Anfrage
?- geloest(X,a(X)).
Wie antwortet das System, warum? Gib wieder listing(gefunden). ein. Wie hat sich die Wissensbasis verändert? Welche Bedeutung hat geloest(_,_).?
4) Ergänze die Wissensbasis um
gesammelt([K|R]):-retract(gefunden(K)),gesammelt(R),!. gesammelt([]).
Stelle nun die Anfrage
?- gesammelt(L).
Wie antwortet das System, warum? Was passiert, wenn man zum zweiten Mal die Anfrage stellt? Warum? Was passiert, wenn man den Cut in gesammelt weglässt? Warum? Wie kann man das testen?
5) Ergänze die Wissensbasis um
alleLoesungen(X,Aussageform,Liste):-geloest(X,Aussageform),gesammelt(Liste).
Erläutere und teste das Prädikat.