Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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 哈斯克尔:我如何附加到元组列表中?_List_Haskell_Append_Tuples - Fatal编程技术网

List 哈斯克尔:我如何附加到元组列表中?

List 哈斯克尔:我如何附加到元组列表中?,list,haskell,append,tuples,List,Haskell,Append,Tuples,对不起,我刚开始学哈斯克尔。我不明白如何在每个子列表中附加一个元组 我目前的名单是: [[("String", "String", 2.0)],[("String", "String", 2.0),("String", "String", 2.0)]] 我想在每个子列表中添加一个元组,因此我的新列表是: [[("String", "String", 2.0),("String","String",0.0)],[("String", "String", 2.0),("String", "Stri

对不起,我刚开始学哈斯克尔。我不明白如何在每个子列表中附加一个元组

我目前的名单是:

[[("String", "String", 2.0)],[("String", "String", 2.0),("String", "String", 2.0)]]
我想在每个子列表中添加一个元组,因此我的新列表是:

[[("String", "String", 2.0),("String","String",0.0)],[("String", "String", 2.0),("String", "String", 2.0),("String","String",0.0)]]
我试图写一个函数,但它一直给我一个错误

append :: a -> [a] -> [a]
append i (x:xs) = x : append i xs
append i [] = i : []
那么我会:

map append ("String","String",0.0)
这给了我很多错误,比如不正确的“类型匹配”。我不知道如何在Haskell中追加。

类型的
[(“String”,“String”,2.0)],[(“String”,“String”,2.0),(“String”,“String”,“String”,2.0)]
分数t=>[(String,String,t)]
,或者简化
[(String,String,Double)]

因此,为了将元素附加到每个嵌套列表中,我们需要一个函数
(String,String,Double)->[[(String,String,Double)]->[[(String,String,Double)]
。换句话说,
a->[[a]]->[[a]]]

append :: a -> [[a]] -> [[a]]
append x xs = map (\xss -> xss ++ [x]) xs
最后

> append ("String","String",0.0) [[("String", "String", 2.0)],[("String", "String", 2.0),("String", "String", 2.0)]]
[[("String","String",2.0),("String","String",0.0)],[("String","String",2.0),("String","String",2.0),("String","String",0.0)]]
顺便说一下,注意在列表末尾添加元素是O(n),因此可以考虑将其添加到开始:

append' :: a -> [[a]] -> [[a]]
append' x = map ((:) x)

我在打电话,所以无法给出正确的答案,但您需要的是
映射(append(“String”,“String”,0.0))
(x:)
更简单