繁体   English   中英

Haskell 中的 [[Char]] 和 [Char] 有什么区别?

[英]What is the difference between [[Char]] and [Char] in Haskell?

为什么我需要在这个函数中使用 [[ ]] ?

描述:函数反转字符串上的所有元素。

revStr :: [[Char]] -> [[Char]]
revStr ls = [reverse s | s <- ls]

'a'是一个Char ,一个单一的字符。

['a','b','c']是一个字符串,一个Char列表。 这个列表也可以写成"abc" ,使用双引号。 它的类型可以写成String[Char]

["abc", "de"]是一个字符串列表。 它的类型可以写成[String][[Char]] (list-of-lists-of- Char )。

我们可以继续说[["abc","de"], ["ef", "abc"]]是一个[[String]] (list-of-lists-of-strings) 或[[[Char]]]

您的revStr不是将单个字符串作为输入,而是将字符串列表作为输入,因此是[[Char]]类型。 它的输出又是一个字符串列表。

  • Char是一个字符,表示单个符号,如'A''$''3'
  • [Char]是一个字符列表,也称为 String(注意[Char] = String ),如['A','$','3'] = "A$3"
  • [[Char]]是一个[[Char]]列表列表,(也是[[Char]] = [String] )。 这本质上是一个像["Hello", "World"]这样的字符串列表

revStr反转提供的 List 中的所有字符串(或[Char] ),因此其类型是字符串列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM