代码之家  ›  专栏  ›  技术社区  ›  noisy

prolog、递归函数和按函数参数返回值

  •  0
  • noisy  · 技术社区  · 15 年前

    问题很简单…为什么这样不行?

    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] . ?

    请帮忙。


    我还在学英语,但有时我犯了愚蠢的错误。我正在尽我最大的努力,用英语写问题和答案,但是如果你能在我的职位上编辑任何错误,我将非常高兴。我保证,你的努力不会白费。

    1 回复  |  直到 12 年前
        1
  •  2
  •   horsh    15 年前