Variablen und wie werden Sie festgelegt und verwendet im prolog
http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/2_1.html
So auf, dass tutorial, wo es ist:
conflict(Coloring) :-
adjacent(X,Y),
color(X,Color,Coloring),
color(Y,Color,Coloring).
Verstehe ich das richtig, dass die Farbe ist eine variable und ein Wert nach dem ersten Aufruf color
und dann wird dieser Wert verwendet, im zweiten Aufruf color
?
InformationsquelleAutor csteifel | 2012-01-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Variablen in Prolog:
Alle Variablen und Argumente sind lokal im Bereich um das Prädikat, in der Sie deklariert sind (aka first). Ausgenommen natürlich, die Variablen werden als Argumente übergeben wurden (im wesentlichen "by reference") zu einem anderen Prädikat.
Prolog-Variablen sind nur "variable" bis gebunden (unified) mit etwas anderem. An diesem Punkt Sie nicht mehr variabel sein und eins zu werden mit dem, womit Sie vereinheitlicht wurden. Daher die Verwendung des Begriffs "Wiedervereinigung": vereinigen, ist, einer zu werden.
Backtracking, natürlich, macht jede Vereinigung, die möglicherweise aufgetreten sind, die die Dinge wieder in die status quo ante, wie Sie waren.
Die spezielle variable
_
ist die "anonyme variable". Jede Nutzung, auch innerhalb der gleichen Klausel ein Prädikat ist unabhängig. Zum Beispiel, angesichts der FaktenPrädikat:
ausfällt, während
erfolgreich sein wird (9 mal, mit backtracking).
InformationsquelleAutor Nicholas Carey
Farbe, es ist eine variable, aber wir können nicht sagen, ob es einen Wert (im Prolog heißt diese Bindung) von den ersten oder den zweiten Anruf Farbe/3. Alles hängt von der Farbe/3-definition. Aber angesichts dieser code ist es wahrscheinlich, dass Ihre Annahme, es ist ok.
InformationsquelleAutor CapelliC