问题标签 [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 - prolog中没有和没有call/2的目标有什么区别?
这两个目标有什么区别?
他们的行为似乎相同?目的是什么call/1
?是否有一个例子说明何时重要?
prolog - 最新的 Prolog 实现基准?
是否有任何最新的 Prolog 实施基准(带有结果)?
我在水星网站上找到了这个。令人惊讶的是,它显示了swi-prolog和 Aquarius之间的 20 倍差距。我怀疑这些结果已经很老了。这个差距还存在吗?就个人而言,我还希望与打开的发生检查进行一些比较,因为它对性能有重大影响,并且某些编译器在优化它方面可能比其他编译器更好。
在最近的比较中,我发现在一个特定的代码库上gnu -prolog比 SWI 快 2 倍,YAP 比 SWI 快 4 倍。
编辑:
实际问题需要发生检查的特定情况
当然:在 Haskell、OCaml、Swift或定理证明器(例如这个)中进行类型推断。我还认为程序员有责任证明他的代码不需要发生检查。测试只能证明你确实需要它,而不是你不需要它。
input - 如何在 GNU Prolog 中读取用户的一行输入,直到 EOF 被击中?
我一直在阅读GNU Prolog文档,以了解如何读取一行输入,直到end_of_file
达到一个原子。这是我编写这样一个目标的伪代码:
我是这样实现的:
以下是 REPL 中发生的情况:
C
如果我为 的第二个分支打印出来read_until_end
,我可以看到它peek_char
总是给我相同的字符,'b'
。我认为我需要一种方法来推进某种类型的输入字符索引或类似的东西,但我在文档中找不到这样做的方法。如果我知道一种方法,我可能不得不使用递归来处理这样的指针,因为我不能有任何可变状态,但除此之外,我不知道该怎么做。有人有建议吗?
dynamic - 编译错误“4:12:语法错误:. 或表达式后预期的运算符”/在序言中定义动态的问题
请帮忙。我在 GNU prolog 中遇到了这个编译错误,当我使用 SWISH 时,它看起来像代码编译但是当我尝试?- current_room(X)。无论如何它都会向我显示错误(只是错误),所以我认为我定义动态的方式有些不对劲。
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'.
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
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
prolog - 如何为 GNU-Prolog 程序创建可执行文件?
我已经在 GNU-Prolog 中编写了一个 prolog 程序并成功编译它,现在我想创建一个可执行文件,以便其他人只需单击该文件并运行该程序。我想知道是否有办法从 GNU-Prolog 程序创建可执行文件?