Comment créer une variable globale dans le prologue

J'ai une liste que j'ai créer comme suit:

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

Je souhaite créer une variable globale AllPosition qui est un onglet. J'ai donc fait la suivante:

tab(AllPos).

Est-ce exact?

Puis-je suivre problème:
J'ai une fonction qui reçoit l'un de la paire dans le tab. Que je souhaite supprimer. J'ai donc fait ceci:

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)).

erase(List, Element, NewList) efface l'élément Élément de la Liste et crée une nouvelle liste NewList égale à la Liste, mais sans Élément. Les deux fonctions member et erase de travail.

La chose est... Comme vous l'avez peut être remarqué que j'ai utiliser AllPospartout. C'est parce que je veux, je veux le modifier pour que je puisse l'utiliser plus tard (après avoir supprimé certains éléments de celui-ci), dans une autre fonction. Est ma logique à droite? Vais-je être en mesure d'utiliser la modification de AllPos dans une autre fonction?
Grâce

Veuillez également vous reporter à la question et réponses sur la façon de éviter les variables globales en Prolog.

OriginalL'auteur FriedRike | 2012-05-18