问题标签 [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.
stream - Prolog 管道部分输入,其余部分由用户输入
我正在编写一个带有输入循环的序言程序。大量输入已预先编写在响应文件中。我将其执行为prolog < response.txt
. 响应文件完成后,我希望程序通过键盘用户输入继续。但是,当响应文件完成时,它不会从键盘读取/1,而是继续在无限循环中读取end_of_file
作为其输入。
一旦管道到达文件末尾,我希望程序恢复为用户键入的输入。我该怎么做呢?
提前致谢。
list - 将字符串附加到序言中的列表
我是 Prolog 的新手,我已经有一些问题需要理解,问题是,我正在测试附加控制台引入的一些字符串:
最终总是得到这个输出:
这个数字只是为了让控制台结束要求更多的值,我不知道出了什么问题,提前谢谢你们。
prolog - 如何在 Prolog 中截断文件长度?
如何在 Prolog 中截断文件长度?
我只set_stream_position/2
在 ISO 标准中找到一个谓词。set_stream_length/2
但我在主要的 Prolog 系统中找不到谓词。
同样有一个流属性position/1
,但我看不到length/1
流属性。后者将有助于使用set_stream_length/2
.
解决方法是什么?
再见
prolog - 查看短语/3 翻译的标准方法?
我正在尝试深入研究以下 GNU Prolog 行为:
有没有标准的方法来查看短语/3 的翻译?
根据 ISO DCG 提案 (*),我们需要有一个 expand_term/2。现在我可以用它来检查:
这是否告诉我在我的 test/3 中如何使用短语/3?
(*) ISO/IEC DTR 13211–3:2006
定句语法规则
Klaus Daessler
2012 年 11 月 20 日
http://www.complang.tuwien.ac.at/ulrich/iso-prolog/dcgs/dcgsdin121120.pdf
prolog - 为什么 gprolog 需要这么多内存?
以下来自 top 命令:
它的 RES 是合理的,但它的大小与 swipl 相比太大了。
操作系统是freebsd 9.0。
真挚地!
prolog - 运行prolog脚本时如何使prolog打印查询结果
我是 prolog 的新手,想将所有查询保存在一个文件中,而不是手动输入它们。
我有这些事实facts.pl
:
在阅读了这个问题的答案后,我想出了以下代码queries.pl
:
在这里,我想检查是否likes(wallace, cheese)
成立,我期望输出类似yes
orno
但实际输出是likes(wallace, cheese)
我用谷歌搜索了很多并尝试过
X = likes(wallace, cheese), write(X).
X is likes(wallace, cheese), write(X).
X := likes(wallace, cheese), write(X).
但它们都不起作用。
这对你来说可能是一个非常简单的问题,但我不知道如何把事情做好。
顺便说一句,我正在使用 GNU Prolog 1.4.1
prolog - 使用 prolog 脚本时如何打印统一结果?
我正在使用 prolog 脚本来执行所有查询,代码如下:
问题是,queryAll
当我想看到统一结果时,只会打印“是”或“否”:
如何在序言中做到这一点?提前致谢。
prolog - gprolog 中的错误处理?
为了在一个简单的查询中运行一组查询,我标记了这些查询并使用forall/2
它们来调用它们:
所以如果我定义类似的东西query(true).
,我就可以yes: true
从输出中看到。
这里的问题是query( ... )
并不总是存在,当 prolog 找不到任何标记的内容query
时,forall/2
将失败并导致异常说“error(existence_error(procedure,query/1),forall/2)”
我想处理这个异常,但不想破坏整个控制流。
我知道catch/3会帮助我,但我不知道如何使用它,我的代码是:
但序言说“不能重新定义本机代码过程 catch/3”。有什么我错过的吗?
prolog - 地图列表错误?
以下使用的 maplist 在 swi-prolog 而不是 gprolog 中工作:
问候!
gnu-prolog - 为什么 absolute_file_name 不起作用
以下代码适用于 swi-prolog:
gprolog 中似乎没有模块。我怎样才能让它在 gprolog 下工作?
真挚地!