次のように作成するリストがあります。
tab([(top,left),(top,middle),(top,right),(center,left),(center,middle),
(center,right),(bottom,left),(bottom,middle),(bottom,right)]).
タブであるグローバル変数 AllPosition を作成したいと考えています。だから私は次のことをしました:
tab(AllPos).
これは正しいですか?
次に、問題に従う必要があります。タブでペアの1つを受け取る関数があります。削除したいもの。だから私はこれをしました:
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 を List から消去し、List と等しいが Element を含まない新しいリスト NewList を作成します。member
機能と機能の両方が機能しerase
ています。
問題は... お気づきかもしれませんが、私はAllPos
どこでも使用しています。それは私がしたいので、それを変更して、後で(いくつかの要素を削除した後)別の関数で使用できるようにしたいからです。私の論理は正しいですか?変更した AllPos を別の関数で使用できますか? ありがとう