Haskell对 - >感到困惑和=>在一个功能

时间:2012-09-30 19:01:06

标签: haskell

->=>之间有什么区别? 在函数声明中?

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

2 个答案:

答案 0 :(得分:4)

->用于函数获取。签名x -> y表示“带x并返回y”的函数。

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

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

答案 1 :(得分:3)

了解Type Constraints

基本上foo :: (X a) => a -> b表示类型a必须有类型为X的实例。