首页 > 解决方案 > 元组列表的类型构造函数是什么?

问题描述

问题

生成具体类型类型构造函数是什么?[(Int,String)]

问题的由来

我认为这听起来要么是一个愚蠢的问题,要么是一个毫无意义的谜语。我希望以下内容能说服您,我实际上是在尝试在我对基础知识的理解中找出差距。

我知道[]

要“可视化”第二个方面,我可以输入

> x = [1,2,3] :: [] Int
> :t x
x :: [Int]

这清楚地表明[]应用于具体类型Int给出了另一种具体类型[Int]

到目前为止,一切都很好。

另一方面,(,)也有两层含义:

> x = (1,1) :: (,) Int Int
> :t
x :: (Int, Int)
> (,) 1 "hello"
(1,"hello")

因此,如果[](,)都是可以起源于其他类型的类型构造函数,具体类型[Int](Int,Char),我想知道生成类似 的类型的类型构造函数是什么[(Int,Char)]

标签: haskelltuplestype-constructor

解决方案


它不是一个单一类型的构造函数,而是一个嵌套类型的构造函数:

λ> x = [(1, 'a')] :: [] ((,) Int Char)
λ> :t x
x :: [(Int, Char)]

推荐阅读