Prolog-Grundzüge 8: Datenbasis
Juli 21, 2009 at 6:12 nachmittags Hinterlasse einen Kommentar
In den vorigen Blogposts haben wir Fakten, Regeln, das Prolog-System, Pattern-Matching, Rekursion, Fail und den Cut-Operator betrachtet. Damit haben wir die grundlegenden Dinge beisammen, um Prolog-Programme zu schreiben. Jedenfalls fast. Wir müssen noch ein paar Dinge über die Prolog-Datenbank für Fakten und Regeln lernen. Wir können die Datenbasis nämlich zur Programmlaufzeit dynamisch verändern!
Mit assert können wir Fakten und Regeln zur Laufzeit hinzufügen.
assert(benutzer(levi)).
fügt den neuen Fakt “Levi ist ein Benutzer” zur Datenbasis hinzu.
Mit “asserta” wird an den Anfang und mit “assertz” ans Ende der Datenbasis hinzugefügt.
Den Effekt kann man mit “listing” überprüfen:
listing.
listet alle Fakten und Regeln der Datenbasis auf.
Mit “retractall” werden alle Fakten/Regeln aus der Datenbasis entfernt, die zum angegebenen Fakt/Regel passt.
retractall(benutzer(_)).
Anmerkung: Der Unterstrich ist übrigens eine anonyme Variable, die man immer dann einsetzt, wenn man an dem konkreten Wert der Variablen nicht interessiert ist.
Und nicht zuletzt kann man mit “findall” Regeln und Fakten in der Datenbasis suchen:
findall(Benutzer, benutzer(_), BenutzerListe).
liefert alle Regeln namens “benutzer” mit einem Parameter.
Trackback this post | Subscribe to the comments via RSS Feed