基本型別

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 等等。