->
和=>
之间有什么区别?
在函数声明中?
foobar :: Integer -> Integer -> [Integer]
答案 0 :(得分:4)
->
用于函数获取。签名x -> y
表示“带x
并返回y
”的函数。
=>
用于处理类。每种类型的签名只能出现一次。它左边的东西是一个“上下文”,列出哪些类型必须是哪些类的实例。右边的东西是普通的签名。
例如,(Num x, Show y) => x -> y -> String
表示x
必须是数字类型,y
必须是可显示的类型。
答案 1 :(得分:3)
基本上foo :: (X a) => a -> b
表示类型a
必须有类型为X
的实例。