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!