existential qualifier in prolog mit setof / bagof
Ich hatte eine kurze Frage bezüglich. Existenzqualifizierer unter Verwendung von setof in Prolog (d. h. ^).
Bei Verwendung von SICStus scheint S (trotz der Behauptung einer Reihe von Websites) tatsächlich im folgenden Code quantifiziert zu sein (unter Verwendung des Sumpfstandards, Mutter / Kind der Tatsachen, der hier nicht enthalten ist):
child(M,F,C) :- setof(X,(mother(S,X)),C).
Ich überprüfe die Vereinigung mit:
child(M,F,C) :- setof(X-S,(mother(S,X)),C).
Der folgende Code mit dem existenziellen Operator scheint also keinen Unterschied zu machen:
child(M,F,C) :- setof(X,S^(mother(S,X)),C).
Irgendwelche Ideen, warum das so ist? Was wäre eine Situation, in der Sie dann den Unifier benötigen würden?
Vielen Dank!