Я пытаюсь написать сценарий Prolog, который может создать список строк, который после простой процедуры приведет к заданной строке. Мои знания Пролога очень ограничены, и я не уверен, что он вообще может это сделать, поэтому, пожалуйста, скажите мне, если это невозможно.
Я получил это до сих пор
replace_word(Old, New, Orig, Replaced) :-
atomic_list_concat(Split, Old, Orig),
atomic_list_concat(Split, New, Replaced).
Он может выполнить эту операцию
10 ?- replace_word('a','e','glava',X).
X = gleve.
Но он не может отказаться от него.
11 ?- replace_word('a','e',X,'gleve').
ERROR: atomic_list_concat/3: Arguments are not sufficiently instantiated
Я могу представить себе причину проблемы, но есть ли способ ее обойти?