问题很简单......为什么这不起作用?
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。我还在学英语,但有时候我犯的是愚蠢的错误。我正在尽我所能,用英语写问题和答案,但如果你在任何错误的情况下编辑我的帖子,我会很高兴。我保证,你的努力不会浪费。
答案 0 :(得分:2)
你需要追加([HEAD],Y,Result)而不是追加(HEAD,Y,Result)。 HEAD不是自己的名单。