【问题标题】:Predicate to read integers from file in (swi) prolog谓词从(swi)序言中的文件中读取整数
【发布时间】:2011-08-05 13:25:24
【问题描述】:

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

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

【问题讨论】:

    标签: prolog swi-prolog dcg


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      read_from_chars(+Codes, -Term)

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

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

      read_stream_to_codes(+Stream, -Codes)

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多