Prolog,用于确定两个列表是否不相等的程序

ray*_*0nd 2 prolog

我想构建一个Prolog程序来确定作为参数提供的两个列表是否不相等.

这就是我到目前为止所做的.

not-equal([],[a|_]).
not-equal([a|_],[H|T]):-not-equal(a,T).
Run Code Online (Sandbox Code Playgroud)

Jir*_*riz 6

Prolog列表只是可以使用相等运算符直接"比较"的术语.不相等可能意味着不统一不相同.

不统一

?- [1, 2] \= [1, 2].        ===> false
?- [1, 2] \= [1, X].        ===> false
?- [1, 2] \= [1, 3].        ===> true
Run Code Online (Sandbox Code Playgroud)

不一样

?- [1, 2] \== [1, 2].        ===> false
?- [1, 2] \== [1, X].        ===> true
?- [1, 2] \== [1, 3].        ===> true
Run Code Online (Sandbox Code Playgroud)