【发布时间】:2018-10-09 07:58:18
【问题描述】:
这些是从输入文件中读取的谓词
read_line(L,C) :-
get_char(C),
(isEOFEOL(C), L = [], !;
read_line(LL,_),% atom_codes(C,[Cd]),
[C|LL] = L).
%Tests if character is EOF or LF.
isEOFEOL(C) :-
C == end_of_file;
(char_code(C,Code), Code==10).
read_lines(Ls) :-
read_line(L,C),
( C == end_of_file, Ls = [] ;
read_lines(LLs), Ls = [L|LLs]
).
输入文件:
A B
C D
E F
G H
read_lines(L) 返回L = [[A, ,B],[C, ,D],[E, ,F],[G, ,H]]。我的目标是替换所有空格并将列表列表合并为单个列表。所以预期的输出应该是这样的:L = [A-B,C-D,E-F,G-H]。
我目前得到的是修改read_line函数:
read_line(L,C) :-
get_char(C),
( (char_code(C,Code), Code == 32)
-> C = '-'
; C = C),
(isEOFEOL(C), L = [], !;
read_line(LL,_),% atom_codes(C,[Cd]),
[C|LL] = L).
当我使用它时,Prolog 会说Syntax error: Unexpected end of file。这有什么问题?
【问题讨论】:
标签: prolog