我有一个创建如下的列表:
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)).
whereerase(List, Element, NewList)
从 List 中删除元素 Element 并创建一个新列表 NewList 等于 List 但没有 Element。两个功能member
都erase
在工作。
问题是......你可能已经注意到我AllPos
到处都在使用。那是因为我想,我想修改它,以便以后可以在另一个函数中使用它(在从中删除一些元素之后)。我的逻辑对吗?我可以在另一个函数中使用修改后的 AllPos 吗?谢谢