Erlangでリストの処理

Erlangで、リストをイテレートして結果をリストで返す時の、定石のやりかた。

リストの先頭と、それ以降を[H|T]でアクセスしたり、パターンマッチングで実行するファンクションを決めたり、随分、Javaとかとは雰囲気が違って頭の体操になります。

map(P, L) -> map(P, L, []).
map(P, [H|T], Result) -> map(P, T, [P(H)|Result]);
map(P, [], Result) -> Result.