私は Prolog の初心者で、リストの概念について理解を深めようとしています。私が試している例は次のとおりです。
value(a, 1).
value(b, 2).
value(a, 3).
value(a, 4).
value(c, 3).
クエリを実行すると次のような述語を作成しようとしていますfind(a, List)
。List = [1, 3, 4].
すべての事実を調べて、一致するものをリストに追加するだけです。
私はこのようなことを試しました。しかし、それはまったく正しくないようです:
find(X, List):-
value(X, D), append([D], [], [List|Rest]), find(X, [Head|List]).
初歩的な質問で申し訳ありません。任意のガイダンスをいただければ幸いです。
注: リスト内のすべての値を追加することで、プログラムを拡張するつもりです。