+Vartells bagof/3 not to bind Var in Goal. bagof/3 fails if Goal has no solutions.
The example below illustrates bagof/3
^ operator. The variable bindings
are printed together on one line to save paper.
2 ?- listing(foo). foo(a, b, c). foo(a, b, d). foo(b, c, e). foo(b, c, f). foo(c, c, g). true. 3 ?- bagof(C, foo(A, B, C), Cs). A = a, B = b, C = G308, Cs = [c, d] ; A = b, B = c, C = G308, Cs = [e, f] ; A = c, B = c, C = G308, Cs = [g]. 4 ?- bagof(C, A^foo(A, B, C), Cs). A = G324, B = b, C = G326, Cs = [c, d] ; A = G324, B = c, C = G326, Cs = [e, f, g]. 5 ?-
Tag confusing pages with doc-needs-help|Tags are associated to your profile if you are logged in