标准 ML,中缀标识符 错误代码

发布于 2024-11-15 01:36:34 字数 569 浏览 5 评论 0原文

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

这段代码会产生一些编译错误。

那是

e.sml:4.8-4.14 错误:表达式或模式以中缀标识符“before”开头
e.sml:6.8-6.14 错误:表达式或模式以中缀标识符“before”开头
e.sml:6.57-6.60 错误:表达式或模式以中缀标识符“div”开头
e.sml:6.81-6.84 错误:表达式或模式以中缀标识符“div”开头
e.sml:6.88-6.94 错误:表达式或模式以中缀标识符“之前”开头

为什么会发生此错误? 我没有使用中缀代码,而只是使用变量和异常。

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

This code yields some compile error.

That is

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"

Why this error occured?
I didn't use infix code, but just use variable and exception.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

指尖上的星空 2024-11-22 01:36:34

beforediv 是在 SML 的 Basis 库中定义的中缀运算符,因此您不能将它们用作变量或异常的名称,并首先覆盖它们的中缀声明。

before and div are infix operators defined in SML's Basis library, so you can't use them as names for variables or exceptions with overriding their infix declaration first.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文