In this beginner-friendly course, you will get to learn and practice Python’s functional capabilities step-by-step, from the ground up.
The course will begin with a conceptual understanding of the key tenets of functional programming:
- immutability: the idea that data should not be modified in place
- purity: the practice of writing functions that do not cause side effects
- higher-order functions: treating functions as pari passu with other data types
- recursion: the pattern of writing functions that call themselves
- referential transparency: the principle that a function call can be replaced with its return value without changing the program’s behavior
- map, filter, reduce, zip, any, all: utilities for working with iterables
- list, set, dictionary, and generator comprehensions: concise ways of creating lists, sets, dictionaries, and generators
- generator functions and iterators: functions that can be paused and resumed
- variable arity: functions that can take a variable number of arguments, unknown at the time of writing the function
- closures: higher-order functions that can access non-local variables
- recursion: functions that call themselves
- partial function application: functions that return other functions, with some arguments pre-filled
- currying: a special case of partial function application
- memoization: caching the results of function calls to speed up execution
- infinite iterators: iterators that never end
- functional overloading: functions that behave differently depending on their inputs
This course is very beginner-friendly and no python experience is assumed. If you’ve never worked with Python before, there’s a full length introduction to Python programming included as an appendix, covering the fundamentals of the language from the basic data types to containers, control flow, loops, classes, and more.