Замена символов в Visual Prolog
Формулировка задачи:
Не могу понять , почему не работает. Это пример из учебника.
Листинг программы
- implement main
- open core,console,string
- domains
- charlist = char*. /*Список символов*/
- class predicates
- chlist_string:(charlist, string)nondeterm anyflow.
- clauses
- chlist_string([], "").
- chlist_string([H|T], S):-
- chlist_string(T, S1),
- S = concat(chartostring(H),S1).
- /* Предикат замены символов в строке */
- class predicates
- zamena_simv:(string, string, char, char) nondeterm (i,o,i,i).
- clauses
- zamena_simv(S, S1, A, B):-
- chlist_string(S, LS),
- замена(LS, RLS, A, B),!,
- chlist_string(RLS, S1).
- class predicates
- замена:( charlist, charlist, char, char) nondeterm anyflow.
- clauses
- замена([], [],_, _).
- замена([A|T1], [B|T2], A, B):-
- замена(T1,T2,A , B).
- замена([X|T1], [X|T2], A, B):-
- замена(T1,T2,A , B).
- run():- console::init(),
- L = replaceAll("локон волосл","л","к"),
- write("локон волосл","\t",L), nl,
- zamena_simv("локон волосл", L1, ' ',' '),
- write("локон волосл","\t",L1), nl,!.
- run().
- end implement main
- goal
- mainExe::run(main::run).
Решение задачи: «Замена символов в Visual Prolog»
textual
Листинг программы
- S = concat(chartostring(H),S1).
Объяснение кода листинга программы
Код преобразует символ в строку, а затем объединяет результат с S1. Значения переменных:
- H - символ, который нужно преобразовать в строку
- S1 - строка, с которой будет объединяться символ H
- S - итоговая строка, которая получится после объединения
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д