Wie für das erstellen von globalen Variablen in prolog

Ich habe eine Liste, die ich erstellen Sie wie folgt:

tab([(top,left),(top,middle),(top,right),(center,left),(center,middle),
     (center,right),(bottom,left),(bottom,middle),(bottom,right)]).

Ich möchte erstellen Sie eine Globale variable AllPosition eine Registerkarte. Also habe ich Folgendes gemacht:

tab(AllPos).

Ist das richtig?

Dann habe ich Folgen problem:
Ich habe eine Funktion, erhält einer der beiden in tab. Dass ich wünschte, zu entfernen. Also ich habe das:

place(Line, Column, Tab) :-
AllPos \== [_,_] /*while AllPos isn't empty - not sur if this is done this way*/-> (member((Line,Column), AllPos) -> (erase(AllPos, (Line,Column), AllPos)).

wo erase(List, Element, NewList) löscht das element Element aus der Liste und erstellt eine neue Liste, NewList gleich Liste, aber ohne Element. Beide Funktionen member und erase arbeiten.

Die Sache ist die... Wie Sie vielleicht bemerkt haben, verwende ich AllPosüberall. Das ist, weil ich möchte, ich möchte es ändern, so kann ich später (nachdem er entfernt einige Elemente daraus), in einer anderen Funktion. Ist meine Logik richtig? Werde ich in der Lage sein, um modifizierte AllPos in einer anderen Funktion?
Dank

Siehe auch die Fragen und Antworten auf, wie zu vermeiden Sie Globale Variablen in Prolog.

InformationsquelleAutor FriedRike | 2012-05-18

Schreibe einen Kommentar