【发布时间】:2018-08-28 16:24:14
【问题描述】:
我有一个文件 memo.dat ,包含以下条款:
memo(verdi,11).
memo(rossi,7).
memo(bianchi,9).
memo(blu,7).
memo(neri,11).
memo(carli,11).
memo(rapini,8).
为了从这个文件中获取一组元组,我编写了一个 prolog 程序:
memo_to_list(MemoList):-
open('/home/ale/Downloads/Prolog_exercises/memo.dat',read,Stream),
read_list_from_stream(Stream,MemoList),
close(Stream).
read_list_from_stream(Stream,[]):-
at_end_of_stream(Stream),!.
read_list_from_stream(Stream,[(Cognome,Ora)|RestoAppuntamenti]):-
read(Stream,memo(Cognome,Ora)),
read_list_from_stream(Stream,RestoAppuntamenti).
但是,谓词at_end_of_stream 无法检查流何时到达终点。可能是什么问题? (我使用ubuntu默认文本编辑器创建文件memo.dat)
【问题讨论】:
标签: prolog swi-prolog iso-prolog