exception div;
fun f(x,y) =
let
val before = 2.0 * x + 3.0 * y
in
(before + (1.0/(if x > 0.0001 then x else raise div)) + 2.0/y) handle div => before/6.0
end
此代码会产生一些编译错误。标准ML,中缀标识符ERROR代码
即
e.sml:4.8-4.14 Error: expression or pattern begins with infix identifier "before"
e.sml:6.8-6.14 Error: expression or pattern begins with infix identifier "before"
e.sml:6.57-6.60 Error: expression or pattern begins with infix identifier "div"
e.sml:6.81-6.84 Error: expression or pattern begins with infix identifier "div"
e.sml:6.88-6.94 Error: expression or pattern begins with infix identifier "before"
为什么这个错误发生? 我没有使用中缀代码,只是使用变量和异常。
谢谢。这是如此微小的问题。 – manut 2011-06-12 07:20:49
其实,你可以,但你必须用'nonfix'关键字去除他们的中缀状态。但是,这是不好的做法,并且使用其他名称是非常受欢迎的。此外,已经有一个由零例外的除法,称为Div,为什么不使用它呢? – margnus1 2011-06-12 13:57:27