据我所知,在Simple ML中,元组正在通过#n
访问,之前我已经看到它工作但现在它不起作用!
我尝试了以下这一行:
val a =#2 ("one", "2", "three")
但它给了我以下错误:
first.sml:25.26 Error: syntax error found at EOF
uncaught exception Compile [Compile: "syntax error"]
raised at: ../compiler/Parse/main/smlfile.sml:15.24-15.46
../compiler/TopLevel/interact/evalloop.sml:44.55
../compiler/TopLevel/interact/evalloop.sml:296.17-296.20
-
怪异!
答案 0 :(得分:1)
标准ML允许您定义自己的任意运算符。这意味着当你混合使用中缀和前缀运算符时,你需要在它们之间有空格 - 否则它们将被解释为一个运算符。
换句话说,SML认为您试图在代码中调用不存在的=#
运算符。如果您在=
和#
之间添加空格,则可以正常使用。