/* Datenbank */ /* nur aus Fakten bestehend */ /* strecke(Anfangsort,Endort,Laenge). */
strecke(erfurt,weimar,21).
/* Regel, die sichert, dass die Verbindung reflexiv wird. */
direkte_verbindung(Von,Nach,Laenge):-
/* Versuch einer rekursiven Loesung */ |
Das Prädikat verbindung/3 verhält sich nicht wie erwartet. Manchmal wird ein Weg gefunden, oft tritt eine Endlosrekursion auf. |
Zur Fehlersuche kann man sich die besuchten Orte ausgeben lassen: Dazu muss man das Prädikat verbindung/3 wie folgt abändern:
verbindung(Anfang,Ziel,Weg):- |
Es ist nun gut erkennbar, dass das Programm bei Endlosrekursion zwischen zwei Orten hin und her irrt. Dieser Fehler ist durch Führen der besuchten Orte in einer Liste abstellbar. |