Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单SML代码错误_Sml_Smlnj_Ml - Fatal编程技术网

简单SML代码错误

简单SML代码错误,sml,smlnj,ml,Sml,Smlnj,Ml,我刚刚开始学习SML,还在理解它的错误信息 尝试输入下面的函数定义时 val rec : real->real = fn 0.0 => 0.0 | n:real => 1.0/n; 我得到以下错误: stdIn:25.9-25.17 Error: syntax error: deleting COLON ID ARROW stdIn:25.24-25.33 Error: syntax error: deleting FN REAL DARROW stdIn:25.38 E

我刚刚开始学习SML,还在理解它的错误信息

尝试输入下面的函数定义时

val rec : real->real = fn 0.0 => 0.0 | n:real => 1.0/n;
我得到以下错误:

stdIn:25.9-25.17 Error: syntax error: deleting  COLON ID ARROW
stdIn:25.24-25.33 Error: syntax error: deleting  FN REAL DARROW
stdIn:25.38 Error: syntax error found at BAR
有人能指出我做错了什么吗


谢谢。

您的代码中有两个错误:

  • val rec
    和类型注释之间,应该有您正在定义的值的名称
  • 不能在
    real
    s上使用模式匹配。由于
    real
    s是不精确的,它们不是相等类型,因此您也不能对它们使用
    =
    。您需要使用
    Real.==
    来比较Real是否相等(或者更好:不要比较Real是否相等,而是将它们与一些delta进行比较)

  • 你好,sepp2k。谢谢你的回答。我检查了真实的签名,找到了你提到的“==”函数。你提到的第一点我还不清楚。。“rec”是SML中的一个关键字吗(我只是选择它作为互惠的缩写)@ankit:Yes,
    rec
    是一个关键字-它允许值定义是递归的。完美。现在我已经读了递归函数一章,这很有意义。。。谢谢你的帮助!