所以我尝试编写一些最小的代码来将两个字符串列表放在一起,为此我认为最好使用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"]]
最好的解决方法是什么?
答案 0 :(得分:2)
我认为最好使用haskell地图功能
没有。 map f
将f
应用于列表的每个元素。但是你根本不想改变元素,你想要改变列表本身。但是,这超出了map
可能实现的范围。 map
无法添加更多元素,也无法删除一些元素。
如果要连接两个列表,只需使用++
:
adders :: [a] -> [a] -> [a]
adders x y = x ++ y