私はこのような一連の事実を持っています:
person(tj, 'Tom James', house).
person(jj, 'Jim Jones', hut).
person(aw, 'Alex Wolf', boat).
person(jw, 'John Wolf', boat).
そして、彼らが住むことができる場所のリストを取得したい:
[boat, house, hut].
私はsetofを試しました:
placeList(Places) :- setof(Place, person(_, _, Place), Places).
しかし、リストではなく、一度に各場所を取得するだけです。私もfindallを試しましたが、それはボートを複製し、標準的な順序ではありません. ここで私が間違っているところを誰かが指摘できますか? ありがとう。