我正在尝试实现一个prolog方法,该方法将获取一个数字并返回所有可能有序对的列表,其中X和Y都小于给定的数字。例如
genXY(2,R).
应该返回
R=[0,0];
R=[0,1];
R=[1,0];
R=[1,1].
我无法理解如何实现这一点。我写了代码
genN(N,R) :-
N1 is N-1,
between(0,N1,R).
执行时将提供以下输出
genN(3,R).
R=0;
R=1;
R=2;
而且我相信我应该使用forall来实现genXY,但我不明白我将如何做到这一点