我有一個列表,列出清單:序言 - 在列表的列表清單元素
A = [1,2,4,5]
L = [[1,2,5],[3,4,5]]
如果A包含相同的元素列表中的一個,我希望它返回true。由於A包含與L([1,2,5])中的第一個列表相同的元素(1,2,5),因此即使A中有一個元素不在L中的第一個列表中,它也應該返回true 。
p(X):- findall(Y, (member(Y,X), \+ have_common_element(X,Y)), [_]).
have_common_element(A,B):- member(X,A), memberchk(X,B).
但是下面的查詢將返回false:
p([[[1,2,5],[3,4,5]],[1,2,4,5]]).
我明白
我用一對夫婦在a similar question答案提供的謂詞,以解決這一嘗試這是因爲A(4)中有一個元素不在L的第一個列表中,儘管我是難以弄清楚如何擴展謂詞以使查詢返回true。
是否可以擴展這些謂詞,以便在包含額外(和非相互)元素時返回true?
我的錯誤,所有的固定! – Alpine 2014-10-20 13:35:24