考虑:
ghci> :t 'a'
'a' :: Char
ghci> :t "a"
"a" :: [Char]
Run Code Online (Sandbox Code Playgroud)
为什么不同地处理单引号和双引号,这是否重要?
Ove*_*Ove 16
这就像C/C++/C#/ Java和其他编程语言.单引号表示单个字符,双引号表示字符数组(字符串).
在Haskell中,'c'是一个单个字符(Char),"c"是一个字符列表([Char]).
您可以将其与整数和整数列表进行比较:
ghci> let a = 1
ghci> let b = [1,2,3]
ghci> :t a
a :: Integer
ghci> :t b
b :: [Integer]
Run Code Online (Sandbox Code Playgroud)
这很重要,因为必须区分单个元素和元素列表.您可以对简单元素执行不同的操作,也可以对列表执行不同的操作.