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

Ah *_*Gou -2 haskell

为什么需要在此功能中使用[[]]?

说明:该函数反转字符串上的所有元素。

revStr :: [[Char]] -> [[Char]]
revStr ls = [reverse s | s <- ls]
Run Code Online (Sandbox Code Playgroud)

chi*_*chi 6

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

['a','b','c']是一个字符串,一个列表Char。此列表也可以"abc"使用双引号表示为。其类型可以写为String[Char]

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

我们可以继续说这[["abc","de"], ["ef", "abc"]][[String]](string-lists-of-strings)或[[[Char]]]

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