このリストから述語を作りたい。[リンゴ、オレンジ] というリストがあります。この述語を作ってみます--->
果物(リンゴ、オレンジ)。
何か考えはありますか?
=..
(Univとも呼ばれます)を使用して、リストをリストの先頭がファンクターである用語に変換できます。例えば:
?- a(b) =.. [a, b].
true.
を使用して、Prologデータベースで用語をファクトに変換できますassert/1
。
したがって、あなたの質問に対する解決策は次のとおりです。
?- List = [apple, orange], Term =.. [fruits | List], assert(Term).
List = [apple, orange],
Term = fruits(apple, orange).
これで、新しいファクトをクエリして、そこにあることを確認できます。
?- fruits(X, Y).
X = apple,
Y = orange.