从LYAH书中,参数化类型同义词: 我理解:
type MyName = String
但这个例子我没有得到:
type IntMap v = Map Int v -- let alone it can be shortened
'Map'是一个函数,而不是一个类型,对吗?这让我现在不断地在书中循环。接下来:Map需要一个函数和一个列表来工作,对吗?如果是这样,'v'是列表,那么'Int'是什么?
答案 0 :(得分:8)
Map
是类型的名称。它是associative array,并将T
类型的值映射到类型K
的值。因此IntMap
是具有Map
个密钥和Int
值的v
的类型。地图在某些语言中也称为词典。它们由哈希表,平衡树或其他更奇特的数据结构实现。
这是一个不幸的名称冲突,还有map
功能。他们有点做同样的事情,只在不同的环境中。 map
通过向其应用函数来转换输入中的值,而Map
将输入键转换为输出值。
答案 1 :(得分:1)
有一个名为Map
的类型(大写字母为“M”)。还有一个名为map
的函数(带有小写“M”)。除了有类似的名字之外,这些都是无关的。尽量不要混淆他们。 ; - )