@kyanny's blog

My thoughts, my life. Views/opinions are my own.

入れ子のリスト、入れ子のリスト内包表記

http://stackoverflow.com/questions/4969113/erlang-map-nested-list
入れ子のリストに対して、一番内側のリストの構成要素に対して map したい、という問い。で、リスト内包表記を入れ子で使うやり方があった。

-module(deeplist).
-export([test/0]).

test() ->
    L = [["a","b"],["c","d"],["e","f"]],
    F = fun(X) -> io:format("~p~n", [X]) end,
%    lists:map(F, L).
    deepmap(F, L).

deepmap(F, L1) ->
    [ [ F(X) || X <- L2] || L2 <- L1].
%    [F(X) || X <- L].

リスト内包表記に慣れてないので、タネを知ったあとでも自力では書き下せなかった。