An
expression-oriented programming language is a
programming language where every (or nearly every) construction is an
expression and thus yields a value. The typical exceptions are
macro definitions,
preprocessor commands, and declarations, which expression-oriented languages often treat as
statements rather than expressions. Some expression-oriented languages introduce a
void return type to be yielded by expressions that merely cause
side-effects.