问题标签 [gnu-prolog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
prolog - 整数平方根在 SWI-Prolog 和 YAP 中有效,但在 GNU-Prolog 中无效
我通过将以下代码添加到 swipl、gprolog 和 yap 中的用户文件中来测试以下代码:
这在 swipl 和 yap 中按预期工作,但在 gprolog 中我收到以下 N > 1 的错误消息:
这对我来说很奇怪,因为我的代码中的谓词都不依赖isqrt/0
. 这可能是 GNU-Prolog 中的错误吗?作为一种解决方法,我能做些什么?
编辑:这正是我在 ubuntu 上的 gprolog 中产生此错误的方法:
prolog - 未捕获的异常:error(existence_error(procedure,likes/0),friend/0)(七种语言)
目前正在阅读七周内的七种语言一书,并坚持让第一个 prolog 示例运行。这涉及与此问题相同的代码段;但是我相信我的问题完全不同。
我已经在书中定义了likes
和;friend
我的朋友们.pl:
我正在使用 gnu prolog(v1.4.5,在 Ubuntu 18.10 上),我可以通过| ?- [friends.pl]
或| ?- ['friends.pl']
调用带有--consult-file
参数的 gprolog 来加载 friends.pl 咨询文件:gprolog --consult-file friends.pl
就好了
询问likes
事实或规则的第一部分friend
就可以了:
但是,当我尝试一个涉及规则第二部分的查询时,我得到了这个:
当我阅读错误消息时,它告诉我没有过程“喜欢”它需要 0 个参数,对吗?但是在我的规则中哪里引用了这样一个 0 参数过程?我在这里做错了什么?不敢相信这是我序言中的错误;)?
prolog - 如何将数字列表转换为 Prolog 中的单词列表?
我正在尝试编写一个 Prolog 程序,以便给定一个数字列表[1, 2, 3]
,它将它们转换为代表这些数字的单词列表['one', 'two', 'three']
。
到目前为止我的代码:
当我加载gprolog
并查阅文件时,如果我这样做:
我正确地得到:
但是当我这样做时
我得到:
我对 Prolog 很陌生(这是我的第一个 Prolog 程序),我不知道这里出了什么问题。有任何想法吗?谢谢。
module - 无法在 GNU prolog 中加载 library(readutil) 模块?
我正在尝试导入library(readutil)
模块以从我的文件中读取一行。但是,当我尝试以下操作时:
我得到错误:
如何正确导入该模块?模块描述在这里:http ://www.swi-prolog.org/pldoc/man?section=readutil
prolog - 如何迭代地使用 read_line_to_codes 和 atom_codes 来生成行数组作为我的 .txt 文件的字符串?
我正在尝试使用read_line_to_codes(Stream,Result)
and atom_codes(String,Result)
。这两个谓词首先从文件中读取行作为字符代码数组,然后将该数组转换回字符串。然后我想将所有这些字符串输入到字符串数组中。
我尝试了递归方法,但是对于如何在开始时实际将数组实例化为空以及process_the_stream/2
.
我希望使用递归方法将行数组作为字符串。
prolog - 逻辑任务中的互斥
有三个朋友 - misha、petya、vova。姓氏:伊万诺夫、谢苗诺夫、格拉西莫夫。
米莎不是格拉西莫夫。
vova 正在学习 6 年级。格拉西莫夫排在第五位。如何定义 vova 的姓氏(几个)?
vova 的父亲是工程师,ivanov 的父亲是锁匠。
vova的姓(一)怎么定义?
prolog - 有没有办法解决这个错误?架构 x86_64 的未定义符号:(gnu-prolog)
我的程序在 swi prolog 上运行良好,但是当我尝试使用 gnu-prolog 运行它时。它没有成功运行。我收到这个错误,我不知道如何解决。
这是我的第一个错误
gprolog [我的项目名称]
我在一行中运行它没有用
我试图在终端 gplc [myprojectname] 上以不同的方式运行它
gplc [我的项目名称]
ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)编译失败
visual-studio-code - 如何在 VSC 上运行 GNU-Prolog?
我是使用 VSCode 的新手,而且我正在学习 Prolog,所以我想知道如何从编辑器中运行它。
我在 Windows 上,我已经激活了环境变量LINEDIT=gui=no
,所以当我调用C:\GNU-Prolog\bin\gprolog.exe
它时,它会在 shell 上运行。
要打开一个文件,您必须在 prolog 终端中运行:
changedirectory(DirectoryPathName).
进入文件目录并
[file]
打开它。
我不知道如何将其转换为 VSC 设置,以便我可以使用它来运行 Prolog。
任何帮助表示赞赏!
prolog - GNU Prolog 简单程序无法按预期工作
编辑:我刚刚gprolog
从源代码编译。
它工作正常。Debian repo 中的 1.4.5 版本存在漏洞。
这是我在 GNU Prolog (gprolog) 中的第一个程序,但没有成功。:-(
我在 Prolog 教程中找到了这些练习。
预期的答案是:
源代码的第一行是:
调用是: