我想构建一个Prolog程序来确定作为参数提供的两个列表是否不相等.
这就是我到目前为止所做的.
not-equal([],[a|_]).
not-equal([a|_],[H|T]):-not-equal(a,T).
Run Code Online (Sandbox Code Playgroud)
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)