Findall在Prolog中有多个变量

时间:2016-10-15 16:43:53

标签: prolog prolog-findall

我想从Prolog中制定的规则中获取解决方案列表。

但是,findall谓词似乎只适用于一个变量。

有人可以建议如何解决这个明显的限制吗?

我的规则

beat(P,M,E)

我想要什么

L = [[P,M],[P,M],................]

我现在得到什么

L = [P,P,P,P,.........]

L = [M,M,M,M,M.............]

1 个答案:

答案 0 :(得分:6)

findall can work with a surprisingly flexible amount of variations. I think you want something like this:

findall([P,M], beat(P,M,E), L).