你能用类型类开始函数定义吗?

时间:2011-11-24 20:25:48

标签: haskell

在这个tutorial中,作者在最底部提供了一个函数类型:

(Num b) => length :: [a] -> b

所以你可以看到它以类型“Num b”开头(至少我认为是这样)。但是,当我尝试定义类似的东西时:

(Integral a) => lucky :: a -> String

我收到错误:

  

输入`=>'

时解析错误

这里有谁错?

1 个答案:

答案 0 :(得分:12)

教程错误,类型类必须在::之后,类型签名应该是length :: Num b => [a] -> b

语法在语言报告10.5节context free syntax中指定,相关产品是 gendecl