List Haskell-如何转换字符数组';这是一个字符串
我需要转换字符列表 例如:[“a”、“b”、“c”] 一串 例:“abc” 我尝试的方法不起作用——它返回一个“模式中的解析错误” 这是我的代码:List Haskell-如何转换字符数组';这是一个字符串,list,haskell,List,Haskell,我需要转换字符列表 例如:[“a”、“b”、“c”] 一串 例:“abc” 我尝试的方法不起作用——它返回一个“模式中的解析错误” 这是我的代码: listToString :: [Char] -> String listToString [] = "" listToString x:xs = x ++ listToString xs 谢谢你的帮助 在Haskell中,字符串是[Char],因此您不需要转换它们 将其定义为: type String = [Char] 您可以从前奏曲中
listToString :: [Char] -> String
listToString [] = ""
listToString x:xs = x ++ listToString xs
谢谢你的帮助 在Haskell中,
字符串
是[Char]
,因此您不需要转换它们
将其定义为:
type String = [Char]
您可以从前奏曲
中自动获取(无需导入)
例如:
['1','2','3','4'] == "1234"
正如atc正确提到的,
字符串
只是[Char]
的同义词
这就是为什么[“a”、“b”、“c”]
的类型是[[Char]]
,与[String]
相同
因此,您可以使用concat
转换字符串列表:
concat ["a", "b", "c"]
导致
"abc"
如果您有一个字符列表,定义如下:
['a', 'b', 'c'] :: [Char] -- (single quotes: Char, double quotes: String)
不需要转换,因为这与
"abc" :: String
String
是[Char]
的类型别名。不需要转换listToString=id
从技术上讲,“x:xs”是一个应该放在括号中的复合模式:listToString(x:xs)=……
。此外,在这个等式的右侧,您尝试连接单个字符
和字符串
。不要提及您的listToString
实际上是为字符串定义的慢速id
。如果您需要一些术语修复/建议来帮助您学习和搜索解决方案,可以使用id。1.你说的是“字符数组”,但列表不是数组。你说的是“字符列表,例如:[“a”,“b”,“c”]
,但那是一个字符串列表
s-字符列表应该是['a','b','c']
,这与“abc”
的值相同,因为字符串是字符列表。3.你的解析器错误只是缺少括号,请尝试列表字符串(x:xs)=…
.4.如果您想将字符串列表转换为单个字符串,请使用concat
。由于上述混淆,我将投票结束。请随意编辑问题。可能需要澄清1.您谈论的是列表,而不是数组。2.您谈论的是字符串列表还是字符列表?