我有我列出:二郎地图嵌套列表
[["asd", "ddsa"], ["ASD", "ASD"], ["FH", "SDFDF]].
我怎么可以applicate函数F到该列表中的每个元素?我如何映射这个列表?
谢谢。
我有我列出:二郎地图嵌套列表
[["asd", "ddsa"], ["ASD", "ASD"], ["FH", "SDFDF]].
我怎么可以applicate函数F到该列表中的每个元素?我如何映射这个列表?
谢谢。
你可以定义一个deepMap
功能,执行是这样的:如果输入的是不是一个清单,评估你的函数
deepMap(Fun, T) ->
case is_list(T) of
true -> lists:map(fun(E) -> deepMap(Fun,E) end, T);
false -> Fun(T)
end.
。如果是列表,则使用map
,将deepMap
应用于所有使用函数的元素。
如果通过元素来表示你的意思是“asd”,那么你的主List将总是像你的例子那样深两级,并且你的返回结果应该是相同的格式,这将是应该的。
List1 = [["asd", "ddsa"], ["ASD", "ASD"], ["FH", "SDFDF]]
[ [ F(String) || String <- List2 ] || List2 <- List1 ]
如果你的意思是,你的元素[“ASD”,“DDSA”]只是使用列表:地图/ 2或列表理解如下。
List1 = [["asd", "ddsa"], ["ASD", "ASD"], ["FH", "SDFDF]]
[ F(List2) || List2 <- List1 ]
如果你想扁平化列表并返回一个不符合要求的值列表,你可以这样做[[F(String)||]。 SubList < - List,String < - SubList]`。 – rvirding 2011-02-11 13:39:25
在这种情况下,您实际上需要不同的代码,因为字符串也是列表。此代码将为每个字符(整数)调用Fun。 – 2011-02-12 04:13:17