小编mos*_*ewe的帖子

使用phrase_from_file 读取文件的行

我一直在尝试使用phrase_from_file语法规则解析包含整数行的文件

line --> I,line,{integer(I)}.
line --> ['\n'].
Run Code Online (Sandbox Code Playgroud)

因此: phrase_from_file(line,'input.txt').

它失败了,我很快就迷路了,试图追踪它。我什至试图打印I,但它甚至没有到达那里。

编辑:: 由于以下解决方案都不能真正满足我的需求(使用read/1假设您正在阅读条款,有时编写 DCG 可能会花费太长时间),我蚕食了我在 google 上搜索到的这段代码,主要的变化是添加了:

read_rest(-1,[]):-!.

read_word(C,[],C) :- ( C=32 ;
                       C=(-1)
                     ) , !.
Run Code Online (Sandbox Code Playgroud)

prolog swi-prolog dcg

5
推荐指数
2
解决办法
794
查看次数

标签 统计

dcg ×1

prolog ×1

swi-prolog ×1