对于1 <= a <= 30和1 <= b <= n
,我有一个例外代码我有:
exception invalid_input
let n = 5
let k = 6
if n<1 || n > 30 || k<1 || k>n then raise Invalid_input
else ()
但是编译器在if then else行中说语法错误。 怎么了?
答案 0 :(得分:0)
问题是您要混合使用表达式和定义。
经过一些定义后,计算有效表达式的惯用方式是
使用let () = ...
:
let () = if n<1 || n > 30 || k<1 || k>n then raise Invalid_input
否则,您可以使用;;
;; if n<1 || n > 30 || k<1 || k>n then raise Invalid_input