0
我是SWI-prolog的新手,並且遇到了代碼問題。我希望它確定輸入是5的倍數而不是偶數,但如果它不是整數,它應該打印出錯誤消息。到目前爲止,我有這個,但它沒有打印出錯誤信息,而只是告訴我這是一個類型錯誤。序言:如果輸入一個浮點數,輸出將輸出錯誤
MultOf5(N) :-
0 is N mod 5, \+ 0 is N mod 2.
MultOf5(Other) :-
N is Other,
print("ERROR: The given parameter is not an integer").
它打印出這個當我輸入:
?-Multof5(4.7)
Singleton variables: [N]
mod/2: Type error: `integer' expected, found `4.2' (a float)
請讓我知道我要去哪裏錯了,我可以做些什麼來解決這個問題。這是說我也有一個單身變量。謝謝。
是的對不起,我改變了一些我寫的代碼,所以我可以得到的重點。謝謝!這使得更有意義。 – tadashi
打印出錯誤後,我有辦法切斷代碼嗎?我加了!之前;(或),但它告訴我它的錯誤。 – tadashi
@tadashi你會想用'print'剪下。你可以把它寫成'print(...),!'。由於'print'沒有任何選擇點,所以你可以在之前放入:'!,print(...)'。 – lurker