私はそのように設定された事実を持っています...
fav_fruit(male, young, apple).
fav_fruit(female, young, bannana).
fav_fruit(male, old, bannana).
fav_fruit(female, old, apple).
fav_fruit(female, young, apple).
好きな果物が 1 つ以上ある (性別、年齢) のグループがあるかどうかを調べる必要があります (上記の事実に対する答えは (女性、若い) になります)。
私が理解しようとしてきたのは、プロローグでaggregate
orfindall
関数を使用して、.... のようなある種のリストを返す方法です。
female, young = 2 (apple, bannana)
male, young = 1 (apple)
male, old = 1 (bannana)
female, old = 1 (apple)
...そうすれば、各メンバーの合計を確認して、それが 1 より大きいかどうかをテストできます。
どんなアイデアでも大歓迎です。