0

この述語を実装する必要があります。

predicate(+connections, +[index,position], -leftConnections);

connections 変数は、次のようなリストです。

(conn(symbol1, element11, element21), conn(symbol2, element12, element22), etc)

インデックス変数と等しいシンボルを持つ接続を見つける必要があります。次に、2 つの elem のどちらが位置変数と等しいかを検証し、もう一方を保持する必要があります (これを と呼びましょうnew_pos)。次に、見つかった接続を削除し、2 つの要素 のいずれかに含まれる他の接続を検索し、new_pos見つかった新しいシンボルを保持します。

例:

predicate([conn(1,P1,P2), conn(4,P2,P3), conn(3,P3,P1), conn(2,P6,P7)], [1, P2], left);

index = 1, position = P2 => new_position = P1 => new_symbol = 3
leftConnections = [conn(4,P2,P3), conn(3,P3,P1), conn(2,P6,P7)]

コードは大歓迎です!

4

1 に答える 1