Prolog、递归函数和通过函数参数返回值
问题很简单。。。为什么这不起作用Prolog、递归函数和通过函数参数返回值,prolog,return-value,Prolog,Return Value,问题很简单。。。为什么这不起作用 replace([l|[r|[r|[l|R]]]], Result) :- append([f,f],R,Result). replace([HEAD|TAIL], Result) :- replace(TAIL, Y), append(HEAD,Y,Result). ?-替换([l,r,r,l,r,r],X)。 返回 X=[f,f,r,r]。 但是 ?-替换([r,l,r,r,l,r,r],X)。 给予 false 为什么不X=[r,f,f,r,r]。 请
replace([l|[r|[r|[l|R]]]], Result) :- append([f,f],R,Result).
replace([HEAD|TAIL], Result) :- replace(TAIL, Y), append(HEAD,Y,Result).
?-替换([l,r,r,l,r,r],X)。
返回
X=[f,f,r,r]。
但是
?-替换([r,l,r,r,l,r,r],X)。
给予
false
为什么不X=[r,f,f,r,r]。
请帮忙
我还在学英语,但有时我会犯愚蠢的错误。我正在尽我所能,用英语写问题和答案,但是如果你能编辑我的帖子以防出现任何错误,我将非常高兴。我保证,你的努力不会白费。你需要追加([HEAD],Y,Result)而不是追加(HEAD,Y,Result)。HEAD不是oitself的列表