置换/ 2不返回置换

时间:2018-05-03 04:49:17

标签: prolog swi-prolog prolog-toplevel

什么是排列/ 2?

help(permutation).中所述:

谓词permutation/2主要用于生成排列。

这就是我想要用它的原因。

置换/ 2应如何工作

这是文档中给出的示例:(当然,框周围通常不存在。)

 ____________________________________________________________________|                                                                          |
| ?- permutation([1,2], [X,Y]).                                      |
| X = 1, Y = 2 ;                                                     |
| X = 2, Y = 1 ;                                                     |
||false.____________________________________________________________ ||

再现示例(以及其他几个示例)

当我尝试permutation/2时,不会发生同样的事情:(其中任何一个都在我的电脑上运行)

?- permutation([1,2],[X,Y]).
X = 1,
Y = 2 .

?- permutation([2,1],X).
X = [2, 1] .

?- permutation([1,2],[2,1]).
true .

正如您所看到的,prolog不会返回任何排列,而是输入本身。

  • 为什么会发生这种情况?
  • 如何获得所有排列?

关于我的prolog版本的更多细节。

  • 在我的Ubuntu / Linux计算机上
  • 我昨天刚刚安装了包swipl
  • 它告诉我它的版本:threaded, 64 bits, version 7.4.2

0 个答案:

没有答案