Вопрос просто ... почему это не работает?Пролог, рекурсивные функции и возвращаемое значение аргументом функции
replace([l|[r|[r|[l|R]]]], Result) :- append([f,f],R,Result).
replace([HEAD|TAIL], Result) :- replace(TAIL, Y), append(HEAD,Y,Result).
?- replace([l,r,r,l,r,r],X).
возвращает
X = [f, f, r, r] .
но
?- replace([r,l,r,r,l,r,r],X).
дает
false
почему нет X = [r, f, f, r, r] .
?
помогите пожалуйста.
PS. Я все еще изучаю английский, но иногда я делаю глупые ошибки. Я делаю все возможное, написание вопросов и ответов на английском языке, однако я был бы очень рад, если вы отредактируете мой пост в случае каких-либо ошибок. Я обещаю, ваши усилия не будут потрачены впустую.
ничего себе ... спасибо .. теперь это так очевидно :) – noisy