1
我GOOGLE了这一点,但不能找到答案,所以在这里你去:统一名单列表的Prolog
我在序言中这样的功能:
ing(Lis) :- findall(I,(recipe2(_,ingredients(I,_))),Lis).
此功能搜索和返回我列出的清单像这样:
L = [['wheat flour', egg, salt], ['wheat flour', cheese, olives, tomato, salt, basil], ['wheat flour', potatoes, salt], [milk, egg, sugar]].
我想统一列表列表只在一个列表中,所以我可以得出重复。我知道我必须使用递归,但这就是我所知道的。
在此先感谢。
权,但由于OP的需求,是的findall/3 – CapelliC
@CapelliC之后,除去重复,更好地利用SETOF/3,或排序/ 2,感谢指出了这一点。涉及处理重复的问题部分由于某种奇怪的原因完全逃脱了我的想法。我编辑了我的答案。 – eazar001