问题标签 [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.

0 投票
1 回答
59 浏览

prolog - prolog中没有和没有call/2的目标有什么区别?

这两个目标有什么区别?

他们的行为似乎相同?目的是什么call/1?是否有一个例子说明何时重要?

0 投票
3 回答
409 浏览

prolog - 最新的 Prolog 实现基准?

是否有任何最新的 Prolog 实施基准(带有结果)?

我在网站上找到了这个。和 Aquarius之间的 20 倍差距。我怀疑这些结果已经很老了。这个差距还存在吗?就个人而言,我还希望与打开的发生检查进行一些比较,因为它对性能有重大影响,并且某些编译器在优化它方面可能比其他编译器更好。

在最近的比较中,我发现在一个特定的代码库gnu 比 SWI 快 2 倍,YAP 比 SWI 快 4 倍。


编辑:

实际问题需要发生检查的特定情况

当然:在 Haskell、OCaml、Swift或定理证明器(例如这个)中进行类型推断。我还认为程序员有责任证明他的代码不需要发生检查。测试只能证明你确实需要它,而不是你不需要它

0 投票
1 回答
100 浏览

input - 如何在 GNU Prolog 中读取用户的一行输入,直到 EOF 被击中?

我一直在阅读GNU Prolog文档,以了解如何读取一行输入,直到end_of_file达到一个原子。这是我编写这样一个目标的伪代码:

我是这样实现的:

以下是 REPL 中发生的情况:

C如果我为 的第二个分支打印出来read_until_end,我可以看到它peek_char总是给我相同的字符,'b'。我认为我需要一种方法来推进某种类型的输入字符索引或类似的东西,但我在文档中找不到这样做的方法。如果我知道一种方法,我可能不得不使用递归来处理这样的指针,因为我不能有任何可变状态,但除此之外,我不知道该怎么做。有人有建议吗?

0 投票
1 回答
122 浏览

unit-testing - GNU Prolog 中的单元测试

我正在尝试将我的 SWI Prolog 应用程序迁移到 GNU Prolog。不幸的是,我对单元测试有疑问。在 SWIPL 中,我们可以简单地使用plunit模块并编写如下测试用例:

但是如何在 GNU Prolog 中实现单元测试呢?甚至一些额外的库(如crisper)也不适用于gprolog

0 投票
1 回答
153 浏览

dynamic - 编译错误“4:12:语法错误:. 或表达式后预期的运算符”/在序言中定义动态的问题

请帮忙。我在 GNU prolog 中遇到了这个编译错误,当我使用 SWISH 时,它看起来像代码编译但是当我尝试?- current_room(X)。无论如何它都会向我显示错误(只是错误),所以我认为我定义动态的方式有些不对劲。

0 投票
2 回答
66 浏览

prolog - When does Prolog prompts 'yes' and when does it says 'true'

I wrote the following knowledge base in Prolog:

Now, when I consult the above file and try the following commands:

I want to understand when does Prolog replies a 'yes' versus when does it replies 'true'.

0 投票
1 回答
85 浏览

prolog - 处理导致编译失败的动态谓词

我正在尝试运行一个示例 GNU Prolog 程序,在我的课程作业中用作示例。该代码直接从https://www.cpp.edu/~jrfisher/www/prolog_tutorial/2_17pl.txt中提取,并由我的教授在某一时刻显示。

但是,当我运行提供的示例代码时,会收到以下编译警告:

使程序无法正确编译的行是:

我在这里读到的:https ://www.swi-prolog.org/pldoc/man?predicate=dynamic/1

然而,尽管尝试重写和重新格式化该部分,我仍然无法编译它。

关于为什么提供的代码可能无法运行的任何帮助?

我正在使用 Windows GUI GNU Prolog 控制台 V1.4.5

0 投票
1 回答
73 浏览

prolog - Prolog: 'Hello world' 导致存在错误。检查文件路径没有成功

这是我的文件:

记事本的图像

这是文件所在位置的证明:

在此处输入图像描述

这是我在 GNU Prologue 控制台中输入的内容:

预期结果:

实际结果:

我尝试了不同的文件名,不同的文件夹,使用“ consult”命令,并使用绝对路径而不是文件名。所有都会导致相同的错误。请帮忙?

0 投票
1 回答
54 浏览

prolog - 我在序言中实现逻辑门但有这个错误

为字节码编译 C:/Users/firoz/OneDrive/Desktop/neww 代码/tt.pl... C:/Users/firoz/OneDrive/Desktop/neww 代码/tt.pl:10: 警告:单例变量 [Expr ] for do/2 C:/Users/firoz/OneDrive/Desktop/neww 代码/tt.pl:11: 警告:不连续谓词 do/3 - 子句被忽略 C:/Users/firoz/OneDrive/Desktop/neww 代码/tt .pl 编译,读取 11 行 - 写入 2112 字节,7 ms

0 投票
1 回答
212 浏览

prolog - 如何为 GNU-Prolog 程序创建可执行文件?

我已经在 GNU-Prolog 中编写了一个 prolog 程序并成功编译它,现在我想创建一个可执行文件,以便其他人只需单击该文件并运行该程序。我想知道是否有办法从 GNU-Prolog 程序创建可执行文件?