Haskell - 如何将Char的数组转换为单个String

时间:2017-05-04 00:27:44

标签: list haskell

我需要转换Char的列表 例如:[" a"," b"," c"] 成一个字符串 例如:" abc"

我尝试过的功能不起作用 - 它会在模式中返回一个解析错误。' 这是我的代码:

listToString :: [Char] -> String
listToString [] = ""
listToString x:xs = x ++ listToString xs

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

在Haskell中,String[Char],因此您无需转换它们。

GHC.Base将此定义为:

type  String = [Char]

可自动从Prelude(您不需要导入)中获取。

例如:

 ['1','2','3','4'] == "1234"

答案 1 :(得分:0)

正如atc正确提到的,String只是[Char]的同义词

这就是为什么["a", "b", "c"]的类型为[[Char]],与[String]相同。

因此,您可以使用concat转换字符串列表:

concat ["a", "b", "c"]

结果

"abc"

如果你有一个Chars列表,定义如下:

['a', 'b', 'c'] :: [Char] -- (single quotes: Char, double quotes: String)

无需转换,因为它与

相同
"abc" :: String