次のコードは、これらの結果を示します。
?- X = a, findall(Element, ( member(Z, [a,b,c]), Element = Z:X ), Set).
X = a,
Set = [a:a, b:a, c:a].
しかし、すべての要素が同じバインドされていない変数 (a ではなく) を共有するようにしたい場合、想定どおりに動作しません。
?- X = Y, findall(Element, ( member(Z, [a,b,c]), Element = Z:X ), Set).
X = Y,
Set = [a:_G1918, b:_G1912, c:_G1906].
_G1918、_G1912、および _G1906 が互いにバインドされないのはなぜですか? それはswi-prologのバグですか?