我通过YouTube视频学习Prolog,处理列表时遇到了很多困难。我正在尝试编写一个谓词overlap(A,B),用来判断A和B是否有共同的元素。我已经能够做到这一点,但如何使用这个overlap(A,B)谓词来定义另一个谓词disjoint(S1, S2)呢?
回答:
如果S1
和S2
之间没有重叠,那么S1
和S2
就是不相交的:
disjoint(S1,S2) :- \+ overlap(S1,S2).
我通过YouTube视频学习Prolog,处理列表时遇到了很多困难。我正在尝试编写一个谓词overlap(A,B),用来判断A和B是否有共同的元素。我已经能够做到这一点,但如何使用这个overlap(A,B)谓词来定义另一个谓词disjoint(S1, S2)呢?
回答:
如果S1
和S2
之间没有重叠,那么S1
和S2
就是不相交的:
disjoint(S1,S2) :- \+ overlap(S1,S2).