【发布时间】:2011-08-05 13:25:24
【问题描述】:
我正在浏览 swi-prolog 中的 IO 手册页,但找不到从文件/流中读取整数(或数字)的谓词。在谷歌上也没有找到任何东西:|
我知道怎么写,只是想知道是否有内置的东西,因为我猜它会更快。
【问题讨论】:
标签: prolog swi-prolog dcg
我正在浏览 swi-prolog 中的 IO 手册页,但找不到从文件/流中读取整数(或数字)的谓词。在谷歌上也没有找到任何东西:|
我知道怎么写,只是想知道是否有内置的东西,因为我猜它会更快。
【问题讨论】:
标签: prolog swi-prolog dcg
在 SWI-Prolog 中,“http”包中有 library(dcg_basics)。它有一个 DCG 非终端编号//1,您可以将它与 library(pio) 一起使用,即,phrase_from_file/2,直接从文件中读取(无需一次读取整个文件)。在邮件列表中有一些讨论将 library(dcg_basics) 包含在核心库中,如果您有兴趣查看档案并向列表发送邮件。我认为这将是对库的一个非常有用的补充。
【讨论】:
如果您可以将输入拆分为每个数字的字符列表,charsio library 具有以下谓词:
read_from_chars(+Codes, -Term)
这将从字符列表中读取一个术语,而不需要终止周期。
readutil library 具有从流中读取字符列表的谓词,例如:
read_stream_to_codes(+Stream, -Codes)
将代码列表拆分为子列表应该很简单(逗号或空格分隔?)
【讨论】: