組み込み述語setof/3
は、重複のない順序付きリストの作成に使用できます。リストが重複のないセットを表すかどうかのテスト
リストを使って重複がないセットがあるかどうかをテストすることもできますか?このような?
no_duplicates(L) :- setof(_,_,L).
組み込み述語setof/3
は、重複のない順序付きリストの作成に使用できます。リストが重複のないセットを表すかどうかのテスト
リストを使って重複がないセットがあるかどうかをテストすることもできますか?このような?
no_duplicates(L) :- setof(_,_,L).
あなたは、記述したとおりに使用することはできません。しかし、setofを使って、あなたのメンバーのリストを反復するようにリクエストした場合にリストがセットであるかどうかを判断し、そのセットを元のものと照合することができます。同じ長さの場合、すべての要素は一意です。
no_duplicates(L) :-
setof(X, member(X, L), Set),
length(Set, Len),
length(L, Len).
できません。引数が十分にインスタンス化されていません。
SWI-Prologを使用している場合は、lists
モジュールの述語 is_set/1
を使用できます。
swiプロローグを使用していないかどうかを確認する別の方法はありますか? –