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