4

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

然而 findall 谓词似乎只适用于一个变量。

谁能建议如何解决这个明显的限制?

我的规则

beat(P,M,E)

我想要的是

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

我现在得到的

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

或者

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

1 回答 1

9

findall可以处理令人惊讶的灵活数量的变化。我想你想要这样的东西:

findall([P,M], beat(P,M,E), L).
于 2016-10-15T17:17:20.340 回答