Inkrementieren von zahlen in prolog
Ich versuche, umzusetzen einen Zuwachs in prolog, und haben geschrieben das folgenden code:
coordenate(X,Y,Z):-
X is 1,
Y is 1,
Z is 1,
coordenate(X1,Y1,Z1),
X1 is X+1,
Y1 is Y+1,
Z1 is Z.
Auch habe ich versucht:
coordenate(X,Y,Z):-
X is 1,
Y is 1,
Z is 1,
coordenate(X+1,Y+1,X+1).
Weder diese Arbeit. Kann mir jemand erklären, warum?
Es buchstabiert koordinieren.
Bitte einen aussagekräftigeren mit "nicht arbeiten". Ist es nicht kompilieren, geben falsche Ergebnisse in eine Endlosschleife, isst Ihr Kätzchen? Wir sind nicht ein Geist, Lesen von compiler-und wir haben auch keine Ahnung, was das zu koordinieren Prädikat soll das tun
Was ist der Zweck des Codes? Jetzt läuft es in Endlosschleife. Geben Sie uns einen weiteren Kontext, so können wir verstehen, Ihr problem
Sorry, mein code funktioniert nicht, es kompiliert, aber nicht funktioniert, und wenn ich es laufen, ich muss aufhören, es mit brechen.
Bitte einen aussagekräftigeren mit "nicht arbeiten". Ist es nicht kompilieren, geben falsche Ergebnisse in eine Endlosschleife, isst Ihr Kätzchen? Wir sind nicht ein Geist, Lesen von compiler-und wir haben auch keine Ahnung, was das zu koordinieren Prädikat soll das tun
Was ist der Zweck des Codes? Jetzt läuft es in Endlosschleife. Geben Sie uns einen weiteren Kontext, so können wir verstehen, Ihr problem
Sorry, mein code funktioniert nicht, es kompiliert, aber nicht funktioniert, und wenn ich es laufen, ich muss aufhören, es mit brechen.
InformationsquelleAutor Bernardo Ortiz | 2011-11-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weder Programm funktioniert, weil Sie enthalten eine unendliche Rekursion. Rufen Sie
coordenate
in sich selbst, ohne ein Stopp-Zustand.Dann, um Ihnen zu helfen mit Ihrem ursprünglichen problem der Inkrementierung einer Variablen im Ort: Sie können nicht tun, dass in Prolog. Sobald eine variable gebunden, die Sie nicht ändern können Ihre Bindung. Bei der Programmierung in Prolog, die Sie haben zu denken, in Bezug Beziehungen und Rekursion, nicht änderbarer Zustand. Hier ist, wie Inkrement in Prolog:
Beachten Sie, dass zwei Variablen benötigt: halten Sie den ursprünglichen Wert und eine für den inkrementierten Wert. Etwas nützliches zu tun mit der Berechnung, die dieses Prädikat führt, die beiden Variablen werden die Argumente des Prädikats. Die erste ist gedacht als input-argument, die zweite als output-argument (obwohl dies nicht spiegelt sich in der Sprache, es folgt aus der Art und Weise
is/2
funktioniert).InformationsquelleAutor Fred Foo