1

我是 sml 和 ml-lex 的新手。要将字符串转换为实数,我们使用函数 real.fromstring。这是我的转换代码,其中 yytext 是字符数组或字符串。

getOpt ((Real.fromString(yytext)), 0.0);

我在 ml-lex 中使用上述语法来标记实数。

{real} => (REAL(getOpt ((Real.fromString(yytext)), 0.0)));

但我得到了错误,

math.lex.sml:5.234-5.240 Error: type constructor Assembly.option given 0 arguments, wants 1

请告诉我 fromstring 函数有什么问题。

4

1 回答 1

-1

警告:我不熟悉ML-Lex

for 的语法Real.fromString不正确。这是一个咖喱函数,调用getOpt应该是:

 getOpt(Real.fromString yytext, 0.0)

示例代码:

 - getOpt(Real.fromString "1.0", 0.0);
 val it = 1.0 : real
 - getOpt(Real.fromString "a", 0.0);
 val it = 0.0 : real
于 2015-02-12T22:24:05.153 回答