![]() |
||
| Prolog |
Materialien
Installation
Grundlagen
Eigenheiten
Berechnungskonzept
Listen
Schleifen
Mengen
globale Variablen
Datenbanken
Arithmetik
Ableiten
Graphen
Cut
failure-driven-loop
Akkumulator
Grafik
rapid prototyping
Logik
Rätsel
Grammatik
Syntax
Glossar
|
|
|
findall |
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.