Haskell类型声明,函数和元组作为参数

时间:2013-09-18 20:00:00

标签: haskell ghci winghci

我正在为学校做一个haskell任务。我想创建一个名为MapTuple的函数,它将一个函数与一个元组映射为元组数组的参数。我以下列方式宣布:

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

我想使用该功能的方式如下。

MapTuple :: [(Int, String)] -> (Int -> String) -> [String]
然而,问题是我在编译时遇到以下错误:

无效的类型签名:MapTuple ::([(a,b)]) - > (a - > b) - >并[b] 应该是::

形式

我做错了什么?

非常感谢您提前帮助我!

1 个答案:

答案 0 :(得分:7)

Haskell的命名约定实际上是语言的一部分

  • 功能以小写字母开头
  • 构造函数以大写字母开头

因此您需要将MapTuple更改为mapTuple

至于构造函数是什么,

 data Foo = ThisIsAConstructor

它基本上是一个返回Foo

的函数