2012-04-30 137 views
0

为什么这个谓词random_permutation不起作用?Swi-Prolog:未定义的程序:random_permutation/2

http://www.swi-prolog.org/pldoc/doc_for?object=random_permutation/2

?- use_module(library(random)). 
% library(pairs) compiled into pairs 0.00 sec, 8,880 bytes 
% library(random) compiled into random 0.04 sec, 333,032 bytes 
true. 

?- L=[1,2,3,4,5], random_permutation(L,P). 
ERROR: toplevel: Undefined procedure: random_permutation/2 (DWIM could not correct goal) 

我怎样才能使它发挥作用?

+1

也许您正在使用旧版本.... – CapelliC

回答

0

请仔细检查您使用的版本。我使用的是5.10.5,库的大小似乎不匹配。

3 ?- use_module(library(random)). 
% library(pairs) compiled into pairs 0.00 sec, 4,568 bytes 
% library(random) compiled into random 0.03 sec, 46,624 bytes 
true. 

4 ?- L=[1,2,3,4,5], random_permutation(L,K). 
L = [1, 2, 3, 4, 5], 
K = [1, 3, 2, 4, 5].