2

次のコードは、これらの結果を示します。

?- 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のバグですか?

4

2 に答える 2