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

Ems*_*ape 2 haskell ghci winghci

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

MapTuple :: [(a,b)] -> (a -> b) -> [b]
Run Code Online (Sandbox Code Playgroud)

我想要使​​用该功能的方式如下.

MapTuple :: [(Int, String)] -> (Int -> String) -> [String]
Run Code Online (Sandbox Code Playgroud)

然而问题是我在编译时遇到以下错误:

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

我究竟做错了什么?

非常感谢您提前帮助我!

Dan*_*zer 7

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

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

所以你需要换MapTuplemapTuple

至于构造函数是什么,

 data Foo = ThisIsAConstructor
Run Code Online (Sandbox Code Playgroud)

它基本上是一个返回a的函数Foo.