Замена символов в Visual Prolog

Узнай цену своей работы

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

Не могу понять , почему не работает. Это пример из учебника.
Листинг программы
  1. implement main
  2. open core,console,string
  3. domains
  4. charlist = char*. /*Список символов*/
  5. class predicates
  6. chlist_string:(charlist, string)nondeterm anyflow.
  7. clauses
  8. chlist_string([], "").
  9. chlist_string([H|T], S):-
  10. chlist_string(T, S1),
  11. S = concat(chartostring(H),S1).
  12. /* Предикат замены символов в строке */
  13. class predicates
  14. zamena_simv:(string, string, char, char) nondeterm (i,o,i,i).
  15. clauses
  16. zamena_simv(S, S1, A, B):-
  17. chlist_string(S, LS),
  18. замена(LS, RLS, A, B),!,
  19. chlist_string(RLS, S1).
  20. class predicates
  21. замена:( charlist, charlist, char, char) nondeterm anyflow.
  22. clauses
  23. замена([], [],_, _).
  24. замена([A|T1], [B|T2], A, B):-
  25. замена(T1,T2,A , B).
  26. замена([X|T1], [X|T2], A, B):-
  27. замена(T1,T2,A , B).
  28. run():- console::init(),
  29. L = replaceAll("локон волосл","л","к"),
  30. write("локон волосл","\t",L), nl,
  31. zamena_simv("локон волосл", L1, ' ',' '),
  32. write("локон волосл","\t",L1), nl,!.
  33. run().
  34.  
  35. end implement main
  36. goal
  37. mainExe::run(main::run).

Решение задачи: «Замена символов в Visual Prolog»

textual
Листинг программы
  1. S = concat(chartostring(H),S1).

Объяснение кода листинга программы

Код преобразует символ в строку, а затем объединяет результат с S1. Значения переменных:

  1. H - символ, который нужно преобразовать в строку
  2. S1 - строка, с которой будет объединяться символ H
  3. S - итоговая строка, которая получится после объединения

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут