숫자 Num.num에 문제가 있습니다. int 대신 Num을 사용해야하지만 프로그램에 오류가 발생했습니다. 도와주세요. 감사.숫자가있는 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