Functional Programming
Pure Functions
Understanding pure functions — deterministic outputs, no side effects, referential transparency, and their role in testable, predictable code.
Immutability
Immutable data patterns in Python — using tuples, frozensets, NamedTuples, and functional update patterns to avoid mutation bugs.
functools Module
The functools standard library — partial application, reduce, lru_cache memoization, singledispatch, and wraps for building composable functional utilities.
Currying and Partial Application
Transforming multi-argument functions into chains of single-argument functions, and freezing arguments with partial application.
Function Composition
Combining simple functions into complex pipelines — compose, pipe, and building reusable data transformation chains.
Monads in Python
Monad-like patterns in Python — Optional/Maybe, Result/Either, and the pipeline operator pattern for safer error handling without exceptions.