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?
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.