Prolog permutation/2不返回置换 什么是排列/2?
如Prolog permutation/2不返回置换 什么是排列/2?,prolog,swi-prolog,prolog-toplevel,Prolog,Swi Prolog,Prolog Toplevel,如帮助(排列)中所述。: 谓词置换/2主要用于生成置换 这就是我想用它的目的 排列/2应该如何工作 这是文档中给出的示例:(当然,周围的框通常不存在。) 复制示例(以及其他几个示例) 当我尝试置换/2时,发生了不同的情况:(其中任何一个都在我的计算机上运行) 如您所见,prolog不返回任何排列,只返回输入本身 为什么会这样 如何得到所有的排列 有关我的prolog版本的更多详细信息。 在我的Ubuntu/Linux计算机上 就在昨天,我安装了这个软件包swipl 它告诉我它的版本:
帮助(排列)中所述。
:
谓词置换/2
主要用于生成置换
这就是我想用它的目的
排列/2应该如何工作 这是文档中给出的示例:(当然,周围的框通常不存在。)
复制示例(以及其他几个示例) 当我尝试
置换/2
时,发生了不同的情况:(其中任何一个都在我的计算机上运行)
如您所见,prolog不返回任何排列,只返回输入本身
- 为什么会这样
- 如何得到所有的排列
有关我的prolog版本的更多详细信息。
- 在我的Ubuntu/Linux计算机上
- 就在昨天,我安装了这个软件包
swipl
- 它告诉我它的版本:
threaded,64位,版本7.4.2
X=[2,1]**空格**。
。您已阻止Prolog给出下一个答案。尝试按代码>或空格
。口译员基本上是问你对答案是否满意。按enter键或
,表示“我很高兴”,Prolog不做任何其他事情。如果按代码>或空格,你说“不,这不是它”,Prolog会回溯并给你另一个结果。如果你想把它们都列在一个列表中,你可以做setof(X,排列([1,2,3],X),Xs)。
。
____________________________________________________________________| |
| ?- permutation([1,2], [X,Y]). |
| X = 1, Y = 2 ; |
| X = 2, Y = 1 ; |
||false.____________________________________________________________ ||
?- permutation([1,2],[X,Y]).
X = 1,
Y = 2 .
?- permutation([2,1],X).
X = [2, 1] .
?- permutation([1,2],[2,1]).
true .