Erlang / Erlang Basics Interview questions
What are guards used for in Erlang?
A guard is an extra boolean condition attached to a function clause or case branch with the
when keyword. It runs after the pattern matches structurally, letting you filter on values rather
than just shape.
classify(N) when N < 0 -> negative; classify(0) -> zero; classify(N) when N > 0 -> positive.
Guards are intentionally restricted to a small set of safe, side-effect-free built-ins (comparisons,
arithmetic, type checks like is_integer/1, and a few guard-only BIFs) — you cannot call
arbitrary functions in a guard. This restriction guarantees a guard can never crash or block, so the runtime can
always safely evaluate it while deciding which clause to run.
More Related questions...