基本类型

elm-repl 中,键入一段代码以获取其值和推断类型。请尝试以下方法以了解存在的各种类型:

> 42
42 : number

> 1.987
1.987 : Float

> 42 / 2
21 : Float

> 42 % 2
0 : Int

> 'e'
'e' : Char

> "e"
"e" : String

> "Hello Friend"
"Hello Friend" : String

> ['w', 'o', 'a', 'h']
['w', 'o', 'a', 'h'] : List Char

> ("hey", 42.42, ['n', 'o'])
("hey", 42.42, ['n', 'o']) : ( String, Float, List Char )

> (1, 2.1, 3, 4.3, 'c')
(1,2.1,3,4.3,'c') : ( number, Float, number', Float, Char )

> {}
{} : {}

> { hey = "Hi", someNumber = 43 }
{ hey = "Hi", someNumber = 43 } : { hey : String, someNumber : number }

> ()
() : ()

{} 是空的 Record 类型,() 是空的 Tuple 类型。后者通常用于惰性评估的目的。请参阅函数和部分应用程序中的相应示例。

请注意 number 如何看起来没有资本化。这表明它是一个类型变量,而且特定单词 number 指的是一个特殊类型变量,它可以是 IntFloat(更多参见相应章节)。虽然类型总是大写的,例如 CharFloatList String 等等。