-
-
Notifications
You must be signed in to change notification settings - Fork 44
Open
Description
No matter what I do, when readln reaches the end of the input it just returns an empty list.
Here's the current version of the script I'm trying to write:
#! /usr/bin/swipl -q
:- initialization(main).
:- dynamic(asserted/1).
assert_stuff(List):- assert_stuff_intern(List).
assert_stuff_intern([]):- !.
assert_stuff_intern([end_of_file]):-
findall(X, asserted(X), Y),
writer_intern(Y),
halt(0).
assert_stuff_intern([X|Rest]):-
\+ asserted(X),
asserta(asserted(X)),
assert_stuff_intern(Rest), !.
assert_stuff_intern([_|Rest]):-
assert_stuff_intern(Rest), !.
writer_intern([]).
writer_intern([X|Rest]):-
writeln(X),
writer_intern(Rest).
main:- prompt1(''), repeat, readln(X), assert_stuff(X), false.
When I feed it an input file it just hangs forever. The documentation says it's supposed to return end_of_file.
Metadata
Metadata
Assignees
Labels
No labels