Functional Programming is the *(term) for a powerful _(paradigm) for programming that originates in the early works about _(lambda calculus): computations consist in evaluating/expanding structured expressions, rather than executing instructions, as with imperative programming.

Because functional programming has so simple semantics, it makes proving _(correctness) of programs, to manipulate programs, to parallelize them, etc., relatively easy.

Functional perspectives work when there is a logical perspective that permits encapsulating _(side effect)s as results within some context or system; consequently the benefits described here are not trivial to achieve.