这可能是一个非常简单的问题。
给定两个字符串列表,xs和ys,我需要一个列表,其中两个字符串已被预先添加。
例如,
body = ["1", "2"]
suffixes = ["a", "b", "c"]
会给出输出
[["1a", "1b", "1c"], ["2a", "2b", "2c"]]
根据我的理解,haskell使用map
其他语言将使用for each
,所以我尝试将append函数映射到列表,
map (++"1") suffixes
但我无法弄清楚如何将其动态应用于["1", "2"]
而不是硬编码。
答案 0 :(得分:6)
如果您不需要列表边界(一种非常常见的情况):
Control.Applicative> liftA2 (++) ["1", "2"] ["a", "b", "c"]
["1a","1b","1c","2a","2b","2c"]
否则,只需将您的通话嵌套到map
:
> map (\prefix -> map (prefix++) ["a", "b", "c"]) ["1", "2"]
[["1a","1b","1c"],["2a","2b","2c"]]