我需要檢查第一個給定的期限(例如s(s(nul))
(或2))是否可以通過第二期(例如s(nul)
(或1))進行分割。Prolog,在Peano算術中檢查可分性
我想要做的是將給定的項乘以2,然後檢查該項是否小於或等於另一項(如果它是相等的 - 問題得到解決)。
到目前爲止,我得到這個:
checkingIfDividable(X,X).
checkingIfDividable(X,Y) :-
X > Y,
multiplication(X,Y).
/* multiplication by two should occur here.
I can't figure it out. This solution does not work!*/
multiplication(Y):-
YY is Y * 2,
checkingIfDividable(X,YY).
我似乎無法弄清楚如何通過2.任何想法乘以一個術語?
您是否期望'multiplication'返回一個值或修改'Y'?因爲它們都不可能。你應該定義一個關係,比如'double(X,XX)',其中'XX'總是X的值的兩倍,可以寫成'XX是X * 2'。 – coredump
@coredump我正在談論條款。你不能* 2這個詞,你能嗎? – WheelPot
你可以,但它可能沒有意義。 :) –