2

我正在浏览 swi-prolog 中的 IO 手册页,但找不到从文件/流中读取整数(或数字)的谓词。在谷歌上也没有找到任何东西:|

我知道怎么写,只是想知道是否有内置的东西,因为我猜它会更快。

4

2 回答 2

3

在 SWI-Prolog 中,“http”包中有 library(dcg_basics)。它有一个 DCG 非终端编号//1,您可以将它与 library(pio) 一起使用,即,phrase_from_file/2,直接从文件中读取(不必一次读取整个文件)。在邮件列表中有一些讨论将 library(dcg_basics) 包含在核心库中,如果您有兴趣查看档案并向列表发送邮件。我认为这将是图书馆的一个非常有用的补充。

于 2011-08-06T08:34:27.993 回答
2

如果您可以将输入拆分为每个数字的字符列表,则charsio 库具有以下谓词:

read_from_chars(+Codes, -Term)

这将从字符列表中读取一个术语,而无需预期终止期。

readutil 库具有用于从流中读取字符列表的谓词,例如:

read_stream_to_codes(+Stream, -Codes)

将代码列表拆分为子列表应该很简单(逗号或空格分隔?)

于 2011-08-05T17:42:08.363 回答