What is Functional Programming?
A programming paradigm that treats computation as the evaluation of mathematical functions, avoiding state changes and mutable data.
Functional programming emphasizes pure functions (same input always produces same output, no side effects), immutable data, and function composition. Key concepts include map, filter, reduce, recursion, and higher-order functions.
Benefits include easier testing (pure functions), parallelism (no shared state), and predictable behavior. Languages include Haskell, Erlang, Clojure, and Scala. Most modern languages (Python, JavaScript, Java) support functional features.