Functional Programming
Definition¶
- "Key linguistic abstraction" of functional languages is the mathematical function.
- A function maps an input to an output; for the same input, it always produces the same output. Mathematical functions are stateless.
- Functions are first-class: can be used as input for functions, and produce functions as output.
Compared to Imperative¶
An Imperative Programming Language...
- Involves mutable state that changes throughout execution.
- Commands specify computations by destructively changing state.
- Procedures (or methods) have side effects that update state and produces a return value.