ich beschäftige mich gerade durch den Unterricht etwas mit Prolog. Nebenbei bin ich auf ein Pdf-Dokument gestoßen, das einige Beispiel bereithält. Folgende Regel versteh ich aber nicht:
code:
1:
2:
3:
4:
5:
6:
zahl(1).
zahl(N) :-
zahl(M),
N is M + 1.
Wenn ich "zahl(...)" mit einer bestimmten natürlichen Zahl aufrufe, liefert es mir true und wenn ich eine Variable für den Aufruf verwende, zählt mir Prolog von 1 alle natürlichen Zahlen auf. Mein Problem ist, dass ich schlichtweg die Logik dahinter nicht verstehe. Genauer gesagt weiß ich nicht, wie Prolog die Variable M verwendet kann, wenn diese vorher nirgendwo deklariert oder besser gesagt definiert wurde, wie kann Prolog "zahl(M)" aufrufen, ohne zu wissen, was M ist? Vielleicht kann mir ja jemand eine Erläuterung geben, stehe wohl gerade auf dem Schlauch.
Hi, das hilft auf jeden Fall etwas weiter. Ich verstehe dennoch nicht ganz, warum Prolog so locker zahl(M) aufrufen kann. Geht Prolog dann intern die Wissensbasis durch und setzt für M 1 ein, oder in wie fern wird damit verfahren?