Как создать глобальную переменную в прологе

У меня есть список, который я создаю следующим образом:

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

Я хочу создать глобальную переменную AllPosition, которая является вкладкой. Поэтому я сделал следующее:

tab(AllPos).

Верно ли это?

Затем я должен решить проблему: У меня есть функция, которая получает одну из пары на вкладке. Что я хочу удалить. Итак, я сделал следующее:

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)стирает элемент Element из списка и создает новый список NewList, равный списку, но без элемента. Обе функции memberи eraseработают.

Дело в том... Как вы могли заметить, я везде использую AllPos. Это потому, что я хочу, я хочу изменить его, чтобы я мог использовать его позже (после удаления из него некоторых элементов) в другой функции. Верна ли моя логика? Смогу ли я использовать модифицированный AllPos в другой функции? Спасибо

5
задан FriedRike 18 May 2012 в 15:11
поделиться