Haskell,创建依赖于给定类型的函数?

时间:2016-05-13 18:07:58

标签: haskell types

我想问一下是否有人可以解释我的Haskell中的typ声明是如何工作的(对于更复杂的函数)。

我想创建一个将使用这些类型的函数:

  1)     ([a], a-> a -> a -> b) -> b
  2)     (a -> b) c -> (c ->a) -> b

但我不明白如何阅读a->a->a-> b之类的东西(我知道b是输出)。

也许你可以帮助我阅读和创建一个与给定类型匹配的函数。

1 个答案:

答案 0 :(得分:4)

你可以假设a-> a -> a -> b为一个函数,它接受3个相同类型的参数并生成另一个类型的输出。例如

fromRGBtoColor :: Int -> Int -> Int -> Color

让我们继续专攻IntColor(针对通用类型ab

你的第一个例子

([a], a -> a -> a -> b) -> b

正在使用[Int]的元组和相同类型fromRGBtoColor的函数,并生成Color

你的第二个案例是遗漏了一些字符..