-1

->和有什么区别=>?在函数的声明中?

foobar :: Integer -> Integer -> [Integer]
4

2 回答 2

4

->用于功能需要。签名的x -> y意思是“一个接受一个x并返回一个y”的函数。

=>用于处理类。每个类型签名只能出现一次。它左边的东西是一个“上下文”,列出了哪些类型必须是哪些类的实例。右边的东西是一个普通的类型签名。

例如,(Num x, Show y) => x -> y -> String将指示x必须是数字类型并且y必须是可显示类型。

于 2012-09-30T19:47:38.107 回答
3

阅读类型约束

基本上foo :: (X a) => a -> b意味着 typea必须有一个 type 的实例 class X

于 2012-09-30T19:06:37.880 回答