我正在浏览swi-prolog中的IO手册页,无法找到从文件/流中读取整数(或数字)的谓词。谷歌上没有找到任何东西:|
我知道如何写一个,只是想知道是否有内置的内容,因为我猜它会更快。
答案 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)
将代码列表拆分为子列表(逗号或空格分隔?)应该是直截了当的。