首页 > 解决方案 > 在haskell中字符串到[Char]

问题描述

在 Haskell 中,我得到了这个字符串“bbbbffff”,我想得到一个这种形式的列表:

['b','b','b','b','f','f','f','f']

我认为我可以使用 map,但说实话,我不知道如何开始,并且在 Haskell 中有很多我不理解的东西。

提前致谢。

标签: haskell

解决方案


默认情况下,aString已经是 a [Char](参见规范):

字符串是字符列表:

type  String  =  [Char]

它们根本不打印,['b','b','b',...]因为[Char]String是相同的类型,因此无法区分,必须以相同的方式显示。事实上,如果你输入你的列表,你会看到它被格式化为一个字符串:

Prelude> 42
42
Prelude> [1,2,3]
[1,2,3]
Prelude> ['b','b','b','b','f','f','f','f']
"bbbbffff"

这意味着您可以立即将其传递给任何列表函数,而无需对其进行任何操作:

myLength :: [Char] -> Int
myLength (c:rest) = 1 + myLength rest
myLength [] = 0

-- Prints 11
main = print (myLength "hello world")

还有其他文本数据类型,例如Data.Text,但这些用于更高级的用途,必须显式启用和使用。


推荐阅读