Functional programming emphasizes the use of pure functions, immutability, and the avoidance of changing state, making it a paradigm that focuses on the evaluation of expressions rather than the execution of statements.