我需要转换Char的列表 例如:[" a"," b"," c"] 成一个字符串 例如:" abc"
我尝试过的功能不起作用 - 它会在模式中返回一个解析错误。' 这是我的代码:
listToString :: [Char] -> String
listToString [] = ""
listToString x:xs = x ++ listToString xs
感谢您的帮助!
答案 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