繁体   English   中英

Prolog中的有序对列表

[英]list of ordered pairs in prolog

我正在尝试实现一个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,但我不知道该怎么做

只需between/3使用两次:

?- N = 2, R = X-Y, succ(N0, N), between(0, N0, X), between(0, N0, Y).

R = 0-0;
R = 0-1;
R = 1-0;
R = 1-1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM