2

存在量化の使用法を理解しようとしています。私が今知っていることは、このテクニックがsetoffindall、 で使用されていることbagofです。さらに、チュートリアルを見つけました。Vars^Goalただし、 Prolog で (存在量の定量化) をいつ、どのように行うかはわかりません。

Lここに例を示します。私の目標は、お互いを知っているが別の会社で働いている 2 人の従業員を見つけ、その結果を次のようにバインドすることName1-Name2です。

company('Babbling Books', 500, 10000000).
company('Crafty Crafts', 5, 250000).
company('Hatties Hats', 25, 10000).

employee(mary, 'Babbling Books').
employee(julie, 'Babbling Books').
employee(michelle, 'Hatties Hats').
employee(mary, 'Hatties Hats').
employee(javier, 'Crafty Crafts').

knows(javier, michelle).

私の最初の本能は、クエリを使用することです

?-employee(N1,C1),employee(N2,C2),C1\=C2,knows(N1,N2).

クエリは答えを見つけましたが、正しい形式にレンダリングしません。正しいものは次のとおりです。

?-setof(N1-N2, (C1,C2)^(employee(N1,C1),employee(N2,C2),C1\=C2,knows(N1,N2)), L).

どうすれば理解でき(C1,C2)^(employee(N1,C1),employee(N2,C2),C1\=C2,knows(N1,N2))ますか?また、そのコンセプトは何ですか?ありがとう。

4

1 に答える 1