4

我有一个清单,例如:

["Hello", "Goodbye"]

我想map在列表中使用;

我之前成功使用map过:

f = ("example" ++)

那么:

map f ["Hello", "Goodbye"]

将列出:

["exampleHello", "exampleGoodbye"]

但是如何使用函数中的列表项f

例如,如果我想重复列表元素,那么

["Hello", "Goodbye"]

会成为

["HelloHello", "GoodbyeGoodbye"]

我怎样才能用map一个函数f(和++)来做到这一点?

4

2 回答 2

9

正在做

map (\x -> x++x) ["Hello", "Goodbye"]

结果是

["HelloHello","GoodbyeGoodbye"]

所以f可以定义为f x = (x++x)

于 2011-10-23T17:24:04.650 回答
7

您可能希望对此类事情使用 lambda 函数。您想查看列表中的每个项目,然后将其替换为重复的自身。复制字符串很简单:\str -> str ++ str,现在您只需将该函数映射到列表上:

map (\x -> x ++ x) ["Hello", "Goodbye"]
于 2011-10-23T17:24:24.397 回答