-1

我有这个代码:

divideByTen :: (Floating a ) => a -> a
divideByTen = (/10)

如果我把它放到 .hs 文件中。似乎这还不够。

(我在 Mac osx 上使用 ghci)。

谢谢你。

在我这样做之后:load * *.hs

我收到了这个错误

byby.hs:1:17:
    Class `Floating' used as a type
    In the type signature for `divideByTen':
      divideByTen :: (Floating a) a -> a
Failed, modules loaded: none.
4

3 回答 3

5

您在代码片段中显示的方式很好,但您的错误清楚地表明您=>在类型签名中缺少 a 。

以后请复制/粘贴有问题的代码。如果你这样做了,那么你的编辑器可能已经转换=>为 Unicode 或其他一些转换。

于 2012-09-02T15:18:06.517 回答
5

问题是箭头=>似乎掉到了某个地方,正如divideByTenGHC 喷出的错误消息中给出的类型签名中没有这个箭头所证明的那样。

确保您的 .hs 文件的内容与您在上面给出的代码片段完全匹配,并且应该没问题。

于 2012-09-02T15:18:05.757 回答
2

正如它所写的,你的代码对我有用。

您是否使用了可能对源代码进行奇怪转换的 ide?转到命令行并转储文件内容以进行检查。

行如何缩进?您的文件中是否还有其他代码?空格可以改变 Haskell 中行的解析方式。

于 2012-09-02T15:08:30.187 回答