HSG

Aktuelle Seite: HSG/Fächer/Informatik/Prolog

Herleitung einer eigenen Version alleLoesungen(+X,+Aussageform,-Liste) von 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.

Valid XHTML 1.0!