我有類型Num.num的問題。 我需要使用Num來代替int,但程序出錯。 請幫幫我。謝謝。OCaml錯誤類型與數字
# open Num;;
# let rec silnia n =
# if n < 2
# then 1
# else n * silnia(n-1)
#
# let rec newton n k =
# silnia n/(silnia k * silnia (n-k))
#
# let bell = [|1;1;2;5;15;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0|]
#
# let i = ref 2
# let k = ref 0
# let x = ref 0
# let z = ref 0
# let suma = ref 0
#
# let n = ref 5;;
val silnia : Num.num -> Num.num = <fun>
val newton : Num.num -> Num.num -> Num.num = <fun>
val bell : Num.num array = [|Num 1;Num 1;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0;Num 0|]
val i : Num.num ref = {contents = Num 2}val k : Num.num ref = {contents = Num 0}
val x : Num.num ref = {contents = Num 0}
val z : Num.num ref = {contents = Num }
val suma : Num.num ref = {contents = Num 0}
val n : Num.num ref = {contents = Num 4}
# if !n != 0 || !n != 1 then
# while !i <= !n do
# while !k <= (!i-1) do
# x := newton (!i-1) !k;
# suma := !suma + (!x * bell.(!k));
# k := !k + 1
# done;
# bell.(!k)<-(!suma);
# suma:=0;
# i:= !i + 1;
# done;;
File "", line 5, characters 29-31:
Error: This expression has type Num.num
but an expression was expected of type int
我不知道如何解決它。請糾正它或給我一些建議。謝謝。
「出錯了」幾乎沒有足夠詳細 – clcto
這是第5行: #suma:=!suma +(!x * bell。(!k)); 文件「」,第5行,字符29-31: 錯誤:該表達式的類型爲Num.num ,但表達式類型爲int – czarnywdowiec