1
我想读取一个文件,然后根据第一个结果编写另一个文件,但是一旦我读取第一个文件,程序立即终止。我寻找了为什么会发生,但我没有找到任何东西。我想知道有人能帮助我。Swi Prolog脚本不能正确执行
这是代码:
main :-
current_prolog_flag(argv, Argv),
[H|_T] = Argv,
readPlainText(H),
getList(L),
open('result.txt',write,X),
write(X, L), nl(X),
close(X),
halt.
main :-
halt(1).
和脚本停止执行这段代码后:
readPlainText(X) :-
open(X, read, Stream),
readWords(Stream),
close(Stream).
我从控制台执行:
swipl -s leer.pl --quiet menciones.txt
编辑:我认为问题在于at_end_of_stream
readWords(InStream) :-
\+ at_end_of_stream(InStream),
readWord(InStream, W),
write(W), nl,
addWordToDatabase(W),
readWords(InStream).