集合序言(列表)
Prolog for sets (lists)
我正在通过 youtube 视频学习 prolog,但我在列表方面遇到了很多困难。我正在尝试编写一个谓词 overlap(A,B) 来确定 A 和 B 是否有任何共同元素。我可以做到,但是我如何使用这个重叠(A,B)谓词来定义另一个谓词不相交(S1,S2)?
如果 S1
和 S2
之间没有重叠,那么 S1
和 S2
是不相交的:
disjoint(S1,S2) :- \+ overlap(S1,S2).
我正在通过 youtube 视频学习 prolog,但我在列表方面遇到了很多困难。我正在尝试编写一个谓词 overlap(A,B) 来确定 A 和 B 是否有任何共同元素。我可以做到,但是我如何使用这个重叠(A,B)谓词来定义另一个谓词不相交(S1,S2)?
如果 S1
和 S2
之间没有重叠,那么 S1
和 S2
是不相交的:
disjoint(S1,S2) :- \+ overlap(S1,S2).