大家好我想在SWI-Prolog中使用谓词transpose(Matrix0, Matrix)
,当Matrix0
和Matrix
是列表列表时,它们保持不变,并且每个列的“列”都是“行”另一个。问题是当我将:- ensure_loaded(library(clpfd)).
添加到我的源文件并尝试使用它时,我得到了这个
% library(occurs) compiled into occurs 0.00 sec, 14 clauses
% library(apply_macros) compiled into apply_macros 0.00 sec, 44 clauses
% library(assoc) compiled into assoc 0.00 sec, 103 clauses
ERROR: /Users/Benjamin/Documents/prologworkspace/test.pl:27:
import/1: No permission to import clpfd:transpose/2 into user (already imported from ugraphs)
% library(clpfd) compiled into clpfd 0.08 sec, 1,372 clauses
% test compiled 0.08 sec, 1,388 clauses
true.
我尝试这个时得到了false
:
?- transpose([['_','_'],['_','_']], X).
false.
有什么建议吗?谢谢。
答案 0 :(得分:3)
import / 1:无权将clpfd:transpose / 2导入用户(已从ugraph中导入)
你有一个名字冲突。这对clpfd:transpose/2
本身来说不是问题。
要不导入模块的所有导出谓词,请使用
:- use_module(library(clpfd), []).
然后你需要调用clpfd:transpose/2
,包括名称空间。
C.f。