Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List Haskell-如何转换字符数组';这是一个字符串_List_Haskell - Fatal编程技术网

List Haskell-如何转换字符数组';这是一个字符串

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] 您可以从前奏曲中

我需要转换字符列表 例如:[“a”、“b”、“c”] 一串 例:“abc”

我尝试的方法不起作用——它返回一个“模式中的解析错误” 这是我的代码:

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.您谈论的是字符串列表还是字符列表?