Haskell中的单引号和双引号

时间:2014-04-07 13:04:13

标签: haskell

考虑:

ghci> :t 'a'
'a' :: Char
ghci> :t "a"
"a" :: [Char]

为什么不同地处理单引号和双引号,这是否重要?

2 个答案:

答案 0 :(得分: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]

这很重要,因为必须区分单个元素和元素列表。您可以对简单元素执行不同的操作,也可以对列表执行不同的操作。

答案 1 :(得分:1)

它们的解释不同,因为它们只是(这就是语言的定义)。这很重要,因为Char[Char]不是一回事。除此之外,我不确定你在这里要问的是什么。