Prolog列表复制代码报Unknown procedure: dups2/2错误如何解决
这个报错的核心原因是你编写的dups2/2谓词没有被当前Prolog运行环境加载,按以下步骤修复即可:
- 把你写的
dups2代码保存为后缀为.pl或.pro的Prolog源文件,例如命名为list_dup.pl - 打开Prolog交互终端(如SWI-Prolog的REPL),执行加载命令
[list_dup].,注意末尾的英文句号不能省略;如果源文件不在当前终端的工作目录下,可以写完整路径,比如Windows系统可写['C:/code/list_dup.pl'].,Linux/macOS系统可写['/home/xxx/code/list_dup.pl']. - 加载完成无报错后,再执行测试查询
dups2([1,2,3], X).,即可得到预期输出X = [1, 1, 2, 2, 3, 3]
补充排查说明:
- 你编写的
dups2代码逻辑没有问题,无需修改- 加载时注意文件名拼写和大小写要和实际保存的文件完全一致
- 所有Prolog交互终端执行的语句末尾都必须加英文句号作为结束标记
内容的提问来源于stack exchange,提问作者AMM
相关产品推荐
相关产品推荐

