Haskell中[[Char]]和[Char]有什么区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Haskell中[[Char]]和[Char]有什么区别?相关的知识,希望对你有一定的参考价值。
为什么需要在此功能中使用[[]]?
描述:该函数反转字符串上的所有元素。
revStr :: [[Char]] -> [[Char]]
revStr ls = [reverse s | s <- ls]
答案
['a'
是Char
,一个字符。
['a','b','c']
是字符串,Char
的列表。该列表也可以用双引号写为"abc"
。其类型可以写为String
或[Char]
。
["abc", "de"]
是字符串列表。其类型可以写为[String]
或[[Char]]
(Char
的列表)。
[我们可以继续说,[["abc","de"], ["ef", "abc"]]
是[[String]]
(字符串列表)或[[[Char]]]
。
您的revStr
输入的不是一个字符串,而是一个字符串列表,因此是[[Char]]
类型。其输出再次是字符串列表。
另一答案
- [
Char
是一个字符,表示单个符号,例如'A'
,'$'
或'3'
- [
[Char]
是一个字符列表,也像[Char] = String
一样也称为字符串(请注意['A','$','3'] = "A$3"
) [[Char]]
是字符列表的列表(也为[[Char]] = [String]
)。这实际上是一个字符串列表,例如["Hello", "World"]
[revStr
反转提供的列表中的所有字符串(或[Char]
),因此其类型为字符串列表
以上是关于Haskell中[[Char]]和[Char]有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用“ord”函数在 Haskell 中将 Char 转换为 Int?