Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Informatik in der Schule » Problem mit Prolog Regel (Arithmetik) » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 3 Beiträge
Proloprob

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
Karlito

Hallo,

schau dir mal den Artikel zu Typinferenz an.

Gruß,

Karlito
Proloprob 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!