【发布时间】:2011-12-13 15:25:12
【问题描述】:
我有一个清单,例如:
["Hello", "Goodbye"]
我想在列表中使用map;
我之前成功使用过map:
f = ("example" ++)
那么:
map f ["Hello", "Goodbye"]
将列出:
["exampleHello", "exampleGoodbye"]
但是如何使用f函数中的列表项呢?
例如,如果我想重复列表元素,那么
["Hello", "Goodbye"]
会变成
["HelloHello", "GoodbyeGoodbye"]
如何使用map 和函数f(和++)来做到这一点?
【问题讨论】:
-
我不知道它是否对你有帮助,但
f = ("example" ++)只是f x = "example" ++ x的简写。 -
@delnan 它实际上是
f = (\x -> "example" ++ x)而不是f x = "example" ++ x的简写,不是吗?在优化方面,这些并不总是完全相同。 -
@leftaroundabout:从语义上讲,它们是相同的(单态限制会毁了这一天,但在这种情况下,由于字符串文字,类型无论如何都是单态的),这就是这里的全部。不知道优化有没有区别,OP也不在乎。
标签: string list haskell higher-order-functions map-function