我刚刚开始学习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
有人可以指出我做错了吗?
谢谢。答案 0 :(得分:4)
您的代码中有两个错误:
val rec
和类型注释之间,应该有您定义的值的名称。real
上使用模式匹配。由于real
是不精确的,因此它们不是相等类型,因此您也不能对它们使用=
。您需要使用Real.==
来比较实数的相等性(或者更好:不要将它们进行相等性比较,而是将它们与某些delta进行比较)。