->和有什么区别=>?在函数的声明中?
foobar :: Integer -> Integer -> [Integer]
->用于功能需要。签名的x -> y意思是“一个接受一个x并返回一个y”的函数。
=>用于处理类。每个类型签名只能出现一次。它左边的东西是一个“上下文”,列出了哪些类型必须是哪些类的实例。右边的东西是一个普通的类型签名。
例如,(Num x, Show y) => x -> y -> String将指示x必须是数字类型并且y必须是可显示类型。
阅读类型约束。
基本上foo :: (X a) => a -> b意味着 typea必须有一个 type 的实例 class X。