我正在为学校做一个haskell任务。我想创建一个名为MapTuple的函数,它将一个函数与一个元组映射为元组数组的参数。我以下列方式宣布:
MapTuple :: [(a,b)] -> (a -> b) -> [b]
我想使用该功能的方式如下。
MapTuple :: [(Int, String)] -> (Int -> String) -> [String]
然而,问题是我在编译时遇到以下错误:
无效的类型签名:MapTuple ::([(a,b)]) - > (a - > b) - >并[b] 应该是::
形式我做错了什么?
非常感谢您提前帮助我!
答案 0 :(得分:7)
Haskell的命名约定实际上是语言的一部分
因此您需要将MapTuple
更改为mapTuple
至于构造函数是什么,
data Foo = ThisIsAConstructor
它基本上是一个返回Foo
。