ML编译代码错误

时间:2018-01-29 15:07:56

标签: ml

我无法理解错误。

我运行此操作并收到错误:

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;

1 个答案:

答案 0 :(得分:0)

raise的第二次使用中,E引用数据类型E的构造函数R1,这不是一个例外。其本地定义会影响异常E的外部定义。重命名其中一个以解决此错误。