我想问一下是否有人可以解释我的Haskell中的typ声明是如何工作的(对于更复杂的函数)。
我想创建一个将使用这些类型的函数:
1) ([a], a-> a -> a -> b) -> b
2) (a -> b) c -> (c ->a) -> b
但我不明白如何阅读a->a->a-> b
之类的东西(我知道b是输出)。
也许你可以帮助我阅读和创建一个与给定类型匹配的函数。
答案 0 :(得分:4)
你可以假设a-> a -> a -> b
为一个函数,它接受3个相同类型的参数并生成另一个类型的输出。例如
fromRGBtoColor :: Int -> Int -> Int -> Color
让我们继续专攻Int
和Color
(针对通用类型a
和b
)
你的第一个例子
([a], a -> a -> a -> b) -> b
正在使用[Int]
的元组和相同类型fromRGBtoColor
的函数,并生成Color
。
你的第二个案例是遗漏了一些字符..