私はちょうどPologを勉強し始めているので、私は以下のことをしなければならない 最初に: 私は述語を書いて、リストAには、Bが持つ要素のうちのいくつかだけが含まれています。 (A = [a、b] B = [a、b、c]が真である)、私はそれを行いましたが、両方のリストの等しい要素が同じカウントであるかどうかを判断する必要もあります。Prologの2つのリストを比較すると、両方のリストの等しい要素が同じ数であるかどうかを確認する
Example:
A = [b,b,c,c] (b and c is member of B so its true)
B = [a,b,b,c,c,d,f,g]
<--would be true
私は最初の部分を書きましたが、まだカウントを確認する必要があります。 [先生はselectを使用して提案し、それが
2番目のオプションです: リストCが唯一のいくつかが含まれている場合は、私がチェックする述語別の表現を、追加する必要がありしかし、私はそれをチェックすると数字を並べ替えに使用することはできませんBが持つ要素(前のタスクと同じ) (既に行われていますが)Bの要素がCで2回表示されているかどうかを確認する必要があります。
Example:
A = [b,b,c,c]
B = [a,b,b,c,c,d,e,f,g]
C = [b,b,b,b,c,c,c,c] /or/ C=[a,a,b,b,b,b]
would be true.
(C = [a、b] B = [a、b、c] EDIT1:そして私がこれまでに書いたコードは次のとおりです。
subset([ ],_).
subset([H|T],List) :-
member(H,List),
subset(T,List).
p(A,B,C) :- %this is the predicate in which I have to
subset(A,B), %compile everything together
subset(C,B).
あなたは既に書いたコードを投稿できますか? – Rodolfo