kwalifikator egzystencjalny w prologu, używając setof / bagof

Szybko zadałem pytanie. kwalifikator egzystencjalny wykorzystujący setof w prologu (tj. ^).

przy użyciu SICStus wydaje się, że (pomimo tego, jak wiele stron twierdzi), S rzeczywiście wydaje się być skwantyfikowany w poniższym kodzie (używając standardu torfowiska, matki faktów / dzieci, które tutaj zawarłem):

child(M,F,C) :- setof(X,(mother(S,X)),C).

sprawdzam unifikację za pomocą:

child(M,F,C) :- setof(X-S,(mother(S,X)),C).

więc poniższy kod z operatorem egzystencjalnym wydaje się nie mieć znaczenia:

child(M,F,C) :- setof(X,S^(mother(S,X)),C).

Jakieś pomysły, dlaczego tak jest? Jaka byłaby sytuacja, w której potrzebny byłby wtedy unifier?

dzięki!

questionAnswers(1)

yourAnswerToTheQuestion