我试图按子列表中的第三个元素对列表列表进行排序,并且使用谓词进行排序,这样定义如下:
sortData(X, [_,_,Z1], [_,_,Z2]) :- compare(X, Z1, Z2).
当我尝试在我的Prolog控制台(predsort(sortData, [[0,5,2],[6,3,1]], X).
)中使用此谓词时,出现错误说明:
uncaught exception: error(existence_error(procedure,predsort/3),top_level/0)
我做了一些研究,发现this SO question就此问题,但无法使用评论者建议的提示来修复我的错误。我尝试将:- use_module(library(sort)).
添加到我的代码中,但是在编译时会发出警告(warning: unknown directive use_module/1 - maybe use initialization/1 - directive ignored
)。
关于为什么我可能会遇到predsort / 3存在错误的任何提示?
编辑:根据上述调用,我想要的输出是:X = [[6, 3, 1], [0, 5, 2]].