Распечатать все слова из текстового файла Prolog

Задание. Распечатать все слова из текстового файла, не имеющие в своем составе ни одной цифры.

Как сделать так, чтобы текст читался из файла построчно и сразу же обрабатывался, то есть проверяло есть ли в слове цифра. Далее выводила на консоль слова без цифр в этой строке и затем обрабатывала следующую строку. Данная реализация работает, но тут я сразу добавляю весь файл в строку. Преподаватель сказал, что это неэффективно.

count(Input_filename):-
read_file_to_string(Input_filename, Str, []),
split_string(Str, "\n !,.?", "", List1),
delete(List1,"", List),
algr(List).

algr([Head|Tail]):-
check(Head, Flag, 0),
Flag is 0, writeln(Head), algr(Tail);
algr(Tail).

algr([]):-!.

check(Head, Flag, Cur_of):-
sub_string(Head, Curof, 1, , Cur),
member(Cur, ["0","1","2","3","4","5","6","7","8","9"]), !,
Flag is 1.

check(Head, Flag, Cur_of):-
Cur_of1 is Cur_of + 1,
string_length(Head, Size),
Cur_of1 < Size, check(Head, Flag, Cur_of1),!;
Flag is 0,!.


Ответы (0 шт):