事実からリストを作りたい。そして、リストには事実のアリティの1つだけが含まれている必要があります。
例えば :
%facts
abc(a, b, c).
abc(d, e, f).
abc(g, h, i).
サンプル :
?-lists(A).
A = [a, d, g];
No.
編集 :
コメント内の提案を使用するVaughn Cato
と、コードは次のようになります。
%facts
abc(a, b, c).
abc(d, e, f).
abc(g, h, i).
lists(A) :-
findall(findall(X, abc(X, _, _), A).
リストは作成されますが、リストを要約するにはどうすればよいA
ですか?
クエリからの入力のリストの合計の場合、
sumlist([], 0).
sumlist([X|Y], Sum) :-
sumlist(Y, Sum1),
Sum is X + Sum1.
しかし、既存のリストを合計したい場合、述語を定義する方法は?