我一直在尝试使用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)