无需重复下一个项目的组合

时间:2018-10-12 10:08:55

标签: prolog

我有两个列表(大小和颜色),我希望构建一个列表,而每个元素之间不重复一个属性

我有一个谓词:

list_pairs(List1, List2, Pairs) :-
    findall((X,Y), (member(X, List1), member(Y, List2)), Pairs).

谁可以帮助我生成所有可用组合:

list_pairs([red,blue,white,yellow],[small,big],T).
T = [(red,small), (red,big), (blue,small), (blue,big), (white,small), (white,big), (yellow,small), (yellow,big)]

但是我不知道如果我想替换这些参数,例如:

T = [(yellow,big), (red,small), (blue,big), (white,small),(red,big),(yellow,small), (white,big), (blue, small)]

我应该避免重复使用两个彼此相邻的红色或两个彼此相邻的小的参数。

有人知道吗?

0 个答案:

没有答案