Nächste Seite: Andere Anwendungen
Aufwärts: Regeln
Vorherige Seite: ueber
  Inhalt
Die wahrscheinlich wichtigste Funktion in einem Lager ist die Beantwortung der Frage ,,Auf welchen verdammten Stapel habe ich das Bier gelegt?``. Mit dem Prädikat wo-ist/2 ist die Antwort leicht zu finden und dem Besäufnis steht nichts mehr im Weg ;-) (ausser natürlich den Kisten, die über dem Bier liegen).
Das Prädikat wo_ist soll für jeden in der Wissensbasis (siehe S. ) vorhandenen Stapel prüfen, ob das erste Argument (Was) darauf liegt.
wo_ist(Was, Stapel) :-
stapel(Stapel),
ueber(Stapel, Was).
Zuerst wird die Variable Stapel mit einem Wert belegt (unifiziert), und zwar mit dem ersten Wert, der in einem stapel-Prädikat in der Wissensbasis auftaucht. Dann wird mit Hilfe des ueber-Prädikates bestimmt, ob das gesuchte Was auf dem betreffenden Stapel liegt. Gibt das ueber ,,yes`` zurück, so wird der Wert von Stapel zurückgegeben.
Die Eigenschaft des beschriebenen Lagers dass jeder Stapel mit einem Block mit dem Stapelbezeichner anfängt, macht dieses Prädikat so leicht zu Programmieren.
Tilman_Brock
2002-04-08