我是 Prolog 的新手,我很难理解某些机制的实际工作原理。现在我正在尝试解决一个特定的问题。
我需要从一个列表中找到所有可能的对,所以我试图定义规则 select_pairs(X,Y,_,Z)。
以下是我在运行给定查询时希望看到的内容。
查询:select_pairs(X,Y,[1,2,3],Z)。返回以下内容:
X = 1, Y = 2, Zs = [3] ;
X = 1, Y = 3, Zs = [2] ;
X = 2, Y = 1, Zs = [3] ;
X = 2, Y = 3, Zs = [1] ;
X = 3, Y = 1, Zs = [2] ;
X = 3, Y = 2, Zs = [3]
AND 查询 select_pairs(1,2,Xs,[3])。返回以下内容:
Xs = [1, 2, 3] ;
Xs = [2, 1, 3] ;
Xs = [1, 3, 2] ;
Xs = [2, 3, 1] ;
Xs = [3, 1, 2] ;
Xs = [3, 2, 1] ;
截至目前,我只能从第一个查询中获得第一个结果来显示,仅此而已。我解决这个问题的最佳方法是什么?谢谢!