420 PROLOG.ERR missing - Prolog

Формулировка задачи:

Подскажите как исправить ошибку при компиляции Error correction Line 20 Coll 11 Есть еще обычный текстовый файл in
domains
file=f;f_o
 
predicates
find(string,string,integer)
upper_file(string,string)
transform(string,integer)
prov(string,string,integer)
 
goal
upper_file("in.txt","out.txt").
 
clauses
 
transform(FS,L):-
          not(eof(f)),!,
          readln(S),
          prov(FS,S,L),
          transform(FS,L).
transform(FS,L):-       (в этой строке показывает ошибку на FS)
          closefile(f),
          closefile(f_o).
 
upper_file(N_F,N_o_F):-
          existfile(N_F),!,
          write("Введите искомую строку:"),nl,
          readln(Find_Str),
          str_len(Find_Str,L),
          openread(f,N_F),
          readdevice(f),
          openwrite(f_o,N_o_F), 
          writedevice(f_o),
          transform(Find_Str,L).
upper_file(N_F,_):-
          write(" Файл с именем*",N_F," *не найден"). 
 
 
find(Subs,S,L):-
         frontstr(L,S,Subs1,_),
         Subs1=Subs,!.
find(Subs,S,L):-
         frontchar(S,_,S1),
         find(Subs,S1,L).
         
prov(FS,S,L):-
         find(FS,S,L),
         write(S),
         nl,!.
prov(FS,S,L):- !.

Код к задаче: «420 PROLOG.ERR missing - Prolog»

textual
domains
file=f;f_o
 
predicates
find(string,string,integer)
upper_file(string,string)
transform(string,integer)
prov(string,string,integer)
 
goal
upper_file("in.txt","out.txt").
 
clauses
 
transform(FS,L):-
          not(eof(f)),!,
          readln(S),
          prov(FS,S,L),
          transform(FS,L).
transform(FS,L):-
          closefile(f),
          closefile(f_o).
 
upper_file(N_F,N_o_F):-
          existfile(N_F),!,
          write("Введите искомую строку:"),nl,
          readln(Find_Str),
          str_len(Find_Str,L),
          openread(f,N_F),
          readdevice(f),
          openwrite(f_o,N_o_F), 
          writedevice(f_o),
          transform(Find_Str,L).
upper_file(N_F,_):-
          write(" Файл с именем ",N_F," не найден"). 
 
 
find(Subs,S,L):-
         frontstr(L,S,Subs1,_),
         Subs1=Subs,!.
find(Subs,S,L):-
         frontchar(S,_,S1),
         find(Subs,S1,L).
         
prov(FS,S,L):-
         find(FS,S,L),
         write(S),
         nl,!.
prov(FS,S,L):- !.

6   голосов, оценка 3.833 из 5


СОХРАНИТЬ ССЫЛКУ