口で言うより行うことがErlang習得への近道と信じています。
lists:filter
filter(fun((term) -> boolean), [term]) -> [term]
filter(要素を取り出す条件, リスト) -> 新しいリスト
リストの各要素に対して同じ処理を適用してtrue
と評価される要素のみを含む新しいリストを生成します。
% リストから偶数のみを取り出す
> lists:filter(fun(X) -> X rem 2 == 0 end, [1, 2, 3, 4]).
[2,4]
% 要素を取り出す条件の関数は真理値返さないとダメ
> lists:filter(fun(_X) -> "hello" end, [1, 2, 3, 4]).
** exception error: bad filter "hello"
in function lists:'-filter/2-lc$^0/1-0-'/2 (lists.erl, line 1383)
filter関数に馴染みのない方は闘魂Elixirの図を眺めてみるとなんとなく感覚が掴めるかもしれません。
listsモジュールには他にもリスト処理のための関数がたくさんあります。
Elixirにも挑戦したい
闘魂ElixirシリーズとElixir Schoolがオススメです。