Here is an example of using comprehension in lieu of Enum.filter_map/3
:
# filter even numbers
filter_fn = fn n ->
rem(n, 2) == 0
end
# double
map_fn = fn n ->
n * 2
end
some_enum = 1..20
# filter_map version
Enum.filter_map(some_enum, filter_fn, map_fn)
# comprehension version
for n <- some_enum, filter_fn.(n), do: map_fn.(n)