1

このリストから述語を作りたい。[リンゴ、オレンジ] というリストがあります。この述語を作ってみます--->

果物(リンゴ、オレンジ)。

何か考えはありますか?

4

1 に答える 1

4

=..(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.
于 2011-05-04T11:44:34.740 に答える