Como usar listas de diferenças em um intérprete Prolog
Quando eu estava escrevendoesta pergunta em uma lista vazia como uma lista de diferenças Eu queria testar o que sabia sobre essas estruturas. No entanto, quando tentei algo tão simples quanto comparar diferentes notações, parecia que eu estava errado e o fiznão entender o que realmente está acontecendo com as listas de diferenças.
?- L = [a,b,c|[d,e]]-[d,e], L = [a,b,c].
false % expected true
Eu testei isso no SWI-Prolog e no SICStus. Eu verifiquei a notação, pois é assim que está escrita na Prolog Programming for AI da Bratko, página 210, mas aparentemente a unificação não é possível. Por que é que? Essas anotações não têm o mesmo significado declarativo?