let rec prime : int -> bool
= fun n -> let rec f a = if (a = 1) then 1
else if (n mod a) = 0 then 0
else if ((f a-1) = 1) then 1
else 0
in
if ((f n-1) = 1) then true
else false
正如你可以從我的代碼看到的,我想實現一個函數,它可以告訴給定的數字是否爲素數。Ocaml,爲什麼這段代碼不工作?
我可以編譯並運行這段代碼,但是對於所有的X函數來說都是「false」。
爲什麼會發生這種情況?
在此先感謝。 :)
我建議總是在二元運算符周圍添加空格。通過編寫'f n - 1'而不是'f n-1',很多初學者誤讀爲'f(n-1)',這會讓你感到困惑。 – camlspotter