Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
prolog sort/4内置的未定义过程_Prolog_Swi Prolog - Fatal编程技术网

prolog sort/4内置的未定义过程

prolog sort/4内置的未定义过程,prolog,swi-prolog,Prolog,Swi Prolog,我试图在SWI Prolog中使用一个假定的内置过程。 所讨论的程序是 问题是,当我尝试在我的程序中使用它时,我得到以下错误: ERROR: Undefined procedure: sort/4 ERROR: However, there are definitions for: ERROR: msort/2 ERROR: sort/2 我不明白,因为文档中说它是内置的,但Prolog不知道。我真的需要使用这个程序 你知道如何解决这个问题吗?我认为这是

我试图在SWI Prolog中使用一个假定的内置过程。 所讨论的程序是

问题是,当我尝试在我的程序中使用它时,我得到以下错误:

ERROR: Undefined procedure: sort/4
ERROR:     However, there are definitions for:
ERROR:         msort/2
ERROR:         sort/2
我不明白,因为文档中说它是内置的,但Prolog不知道。我真的需要使用这个程序

你知道如何解决这个问题吗?我认为这是一个库的问题,并试图在代码的开头添加“:-use_module(library(lists))”,但情况仍然是一样的


希望您能帮助我,祝您愉快

文档中的
sort/4
谓词相对较新。如果您获得了最新的SWI Prolog稳定版或开发版,它应该是可用的。它是内置的,不是库的一部分。

文档中的
排序/4
谓词相对较新。如果您获得了最新的SWI Prolog稳定版或开发版,它应该是可用的。它是内置的,不是库的一部分。

请尝试了解您使用的是哪个版本的SWI Prolog。在命令行中,这将是
$swipl--version
。谢谢,它现在可以工作了!你帮我省去了很多麻烦,非常感谢@false:“sort/2和keysort/2……当然要快得多”——不正确,速度相同。@Boris:你的评论应该是答案,真的。可以作为将来类似问题的参考。@false虽然目前是false,但它涵盖了我所看到的大多数用例。绝对比
sort/2
msort/2
keysort/2
更通用,并且需要使用的代码更少。请尝试了解您使用的SWI Prolog版本。在命令行中,这将是
$swipl--version
。谢谢,它现在可以工作了!你帮我省去了很多麻烦,非常感谢@false:“sort/2和keysort/2……当然要快得多”——不正确,速度相同。@Boris:你的评论应该是答案,真的。可以作为将来类似问题的参考。@false虽然目前是false,但它涵盖了我所看到的大多数用例。绝对比
sort/2
msort/2
keysort/2
更通用,并且需要使用的代码更少。