2
我还在搞清楚prolog是如何工作的,并试图用if语句开发一个小型测试程序,但不能真正得到我需要的值。Prolog简单问题
prog(Sx,Sy) :-
Sx > 0 ->
update(Sx,10,S1), update(S1,10,S2), prog(S2,S2) ;
Sy.
update(S,V,RES) :-
RES is S-V.
我希望prog可以给Sy作为答案而不是true,所以我可以使用它作为另一个谓词的参数。此代码给出了一个错误,当条件为false时,我试过了:
prog([],[],Sy).
prog(Sx,Sy) :-
Sx > 0 ->
update(Sx,10,S1), update(S1,10,S2), prog(S2,S2) ;
prog([],[],Sy).
但是,只是返回true。
有人可以告诉我如何让它返回Sy吗?
感谢
有人吗?我试过不同的方式,但无济于事:( – d0pe 2010-06-09 18:31:36