我正在努力弄清楚如何在列表中添加一些元素(我已经研究过一些例子,但还不能单独完成,需要您的帮助,以确定我对特定领域缺乏理解)。
我使用的输入是start(1,2,3,4,5)。没有编译错误,但我没有任何输出。我不知道您所建议的逻辑错误is..could是什么?
(请参阅下面的最新更新,在修改了我的代码之后,它现在起作用了,问题在于我使用'amt‘的方式,但我不知道为什么!)!
未起作用的原始代码:
start(X):- add(X,1,amt), write(amt).
add([],_,0).
add([H|Tail],Cnt,amt):-
T is (Cnt mod 2), T == 0, Cnt1 is Cnt + 1, add(Tail,Cnt1,Y), amt is H+Y;
T is (Cnt mod 2), T =\=0, Cnt1 is Cnt + 1, add(Tail, Cnt1, amt).最新更新:
我用“S”代替了“amt”,它起作用了!但是为什么它不能与'amt‘一起工作?
下面是修改后的代码:
start(X):- add(X,1,S), write(S).
add([],_,0).
add([H|Tail],Cnt,S):-
T is (Cnt mod 2), T == 0, Cnt1 is Cnt + 1, add(Tail,Cnt1,Y), S is H+Y;
T is (Cnt mod 2), T =\=0, Cnt1 is Cnt + 1, add(Tail, Cnt1, S).谢谢:)
发布于 2010-12-11 16:39:09
你打算展示amt1吗?
https://stackoverflow.com/questions/4417606
复制相似问题