Functional Programming
In plain terms
A paradigm built on pure functions and avoiding shared mutable state.
Going deeper
Functional programming treats computation as evaluating functions, favoring immutability, first-class functions, and no side effects. This makes code more predictable and testable.
Under the hood
Pure functions and immutability ease reasoning and concurrency; concepts include higher-order functions, recursion, and composition.
Examples
Haskell, map/filter/reduce, React's pure components, Redux reducers.
Think of it like...
Like a kitchen where each recipe takes ingredients and returns a dish without ever changing the pantry.