У меня есть список, который я создаю следующим образом:
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 в другой функции?
Спасибо