将两个列表与地图一起添加

时间:2017-03-21 10:42:41

标签: list haskell dictionary

所以我尝试编写一些最小的代码来将两个字符串列表放在一起,为此我认为最好使用haskell map函数。

基本上我希望能够做加法[" 1"," 2"] [" 3"," 4"] = [" 1"," 2"," 3"," 4"]

所以我有一个名为adder的函数,它接受一个列表,然后在该列表中添加一个字符串并返回新列表。然后我有一个名为adders的函数,它复制了加法器函数,但添加了一个字符串列表而不是一个字符串,但是目前它生成多个列表而不是一个列表。

我想

adder :: [String] -> String -> [String]
adder y x = y ++ [x]

adders y x = map (adder y) x 

会起作用,但这只列出了两个列表 [[" 1"" 2"" 3&#34],[[" 1"" 2&#34 ;, " 4"]]

最好的解决方法是什么?

1 个答案:

答案 0 :(得分:2)

  

我认为最好使用haskell地图功能

没有。 map ff应用于列表的每个元素。但是你根本不想改变元素,你想要改变列表本身。但是,这超出了map可能实现的范围。 map无法添加更多元素,也无法删除一些元素。

如果要连接两个列表,只需使用++

adders :: [a] -> [a] -> [a]
adders x y = x ++ y