[英]OCaml: Why am I getting this error?
我开始学习OCaml语言。 您能告诉我为什么此代码显示错误吗?
let unite x =
if x < 100 then x mod 10
else if x >= 100 then x mod 100;;
let dizaine x =
if x < 100 then x / 10
else if x >= 10 then unite(x / 10);;
let centaine x =
if x >= 100 then x / 100;;
let somme_chiffre x =
if x >= 100 then unite x + dizaine x + centaine x
else if x > 9 then unite x + dizaine x
else unite x;;
let div3 x = if ((somme_chiffre x) mod 3) = 0 then 1 else 0;;
print_int(div3 32);;
print_string("\n");;
错误是:文件“ ./test.ml”,第3行,字符24-33:错误:此表达式的类型为int,但应为单位类型的表达式
您的unite
函数的最后一个if
没有else
部分。 您需要一个int
类型的else
部分来匹配该函数的其余部分。
或者,由于您的两个测试是详尽无遗且相互排斥的,因此您实际上可以在没有第二个if
。 那将是一个更整洁的解决方案。
if x < 5 then
(* x is less than 5 in this branch *)
else
(* x is >= 5 in this branch *)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.