Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Informatik in der Schule (http://www.informatikerboard.de/board/board.php?boardid=21)
--- Problem mit Prolog Regel (Arithmetik) (http://www.informatikerboard.de/board/thread.php?threadid=1853)


Geschrieben von Proloprob am 03.05.2014 um 20:18:

  Problem mit Prolog Regel (Arithmetik)

Hallo,

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.

Vielen Dank und freundliche Grüße!



Geschrieben von Karlito am 04.05.2014 um 14:51:

 

Hallo,

schau dir mal den Artikel zu Typinferenz an.

Gruß,

Karlito



Geschrieben von Proloprob am 04.05.2014 um 16:28:

 

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?

Danke und liebe Grüße


Forensoftware: Burning Board, entwickelt von WoltLab GmbH