Erlang / Erlang Basics Interview questions
What are list comprehensions?
A list comprehension builds a new list by describing it declaratively: a result expression, a generator that walks a source list, and optional filters, all in one line, instead of writing an explicit recursive function.
Squares = [X * X || X <- [1, 2, 3, 4], X rem 2 =:= 0]. %% Squares = [4, 16]
Reading that right to left: take each X from the list, keep only the ones where
X rem 2 =:= 0 (the filter), then apply X * X to build the result. Multiple generators
and filters can be chained, and comprehensions can also build binaries with << ... ||
syntax.
They're commonly reached for whenever you'd otherwise write a small "map + filter" recursive helper, since the intent reads clearly at a glance.
More Related questions...