谓词从(swi)prolog中的文件中读取整数

时间:2011-08-05 13:25:24

标签: prolog swi-prolog dcg

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

我知道如何写一个,只是想知道是否有内置的内容,因为我猜它会更快。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

read_from_chars(+Codes, -Term)

将从字符列表中读取一个术语而不期望终止期。

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

read_stream_to_codes(+Stream, -Codes)

将代码列表拆分为子列表(逗号或空格分隔?)应该是直截了当的。