我有一个列表,例如:
["Hello", "Goodbye"]
我希望在列表中使用'map'
;
我之前成功使用过地图:
f = ("example" ++)
那么:
map f ["Hello", "Goodbye"]
列出清单:
["exampleHello", "exampleGoodbye"]
但是如何在函数'f'中使用列表项?
例如,如果我想重复列表元素:
["Hello", "Goodbye"]
会变成:
["HelloHello", "GoodbyeGoodbye"]
我如何使用map和函数'f'(和++)来做到这一点?
非常感谢,
答案 0 :(得分:8)
否则
map (\x -> x++x) ["Hello", "Goodbye"]
结果
["HelloHello","GoodbyeGoodbye"]
因此f
可以定义为f x = (x++x)
。
答案 1 :(得分:6)
您可能想要将lambda函数用于此类事情。您想要查看列表中的每个项目,然后将其替换为自身重复的项目。复制字符串很简单:\str -> str ++ str
,现在您只需要在列表上映射该函数:
map (\x -> x ++ x) ["Hello", "Goodbye"]