2

我刚刚开始学习 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

有人可以指出我做错了什么吗?

谢谢你。

4

1 回答 1

4

您的代码中有两个错误:

  1. val rec和类型注释之间应该有您正在定义的值的名称。
  2. 您不能在reals 上使用模式匹配。由于reals 不精确,它们不是相等类型,因此您也不能=在它们上使用。您需要使用Real.==来比较实数是否相等(或更好:不要比较它们是否相等,而是将它们与某个增量进行比较)。
于 2011-06-23T17:31:58.817 回答