Findall在Prolog中有多个变量

Rei*_*uki 2 prolog prolog-findall

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

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

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

我的规则

beat(P,M,E)
Run Code Online (Sandbox Code Playgroud)

我想要的是

L = [[P,M],[P,M],................]
Run Code Online (Sandbox Code Playgroud)

我现在得到什么

L = [P,P,P,P,.........]
Run Code Online (Sandbox Code Playgroud)

要么

L = [M,M,M,M,M.............]
Run Code Online (Sandbox Code Playgroud)

eaz*_*001 6

findall可以使用惊人的灵活变化.我想你想要这样的东西:

findall([P,M], beat(P,M,E), L).
Run Code Online (Sandbox Code Playgroud)