1. Functional programming uses functions and avoids variables and assignments.
2. In functional programming, programs are represented as mathematical functions where inputs map to outputs without side effects.
3. Key aspects of functional programming include recursion instead of loops, higher-order functions, and referential transparency where functions always produce the same output for the same inputs.