我无法理解错误。
我运行此操作并收到错误:
7.18-7.22 Error: argument of raise is not an exception [tycon mismatch]
raised: ?.R1
in expression:
raise (E y)
val it = () : unit
这是代码:
exception E of real;
fun g (y)= raise E(y);
fun f(z)=
let
datatype R1=E of int;
fun x(y)= raise E(y);
in
z(3);
x(3)
end;
答案 0 :(得分:0)
在raise
的第二次使用中,E
引用数据类型E
的构造函数R1
,这不是一个例外。其本地定义会影响异常E
的外部定义。重命名其中一个以解决此错误。