What you'll learn:
- Practical fluency with map, filter, reduce, zip, any, all, list, set, dictionary, and generator comprehensions, and generator expressions
- Complete coverage of intermediate functional constructs in Python: generators, iterators, decorators, closures, recursion, and much more!
- A practical exploration of advanced topics: closures, recursion, partial function application, currying, memoization, infinite iterators, and overloading
- A conceptual understanding of the key tenets of functional programming: immutability, purity, higher-order functions, recursion, and referential transparency
Welcome to the best and most comprehensive introduction to functional programming in Python!
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
Then, we will explore practical utilities that Python offers to help us write functional code, including:
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
In the final, and longest part of the course, we will take a look at more advanced topics, including:
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
Throughtout the course, you will get to practice your newly acquired skills through a set of more than 20 skill challenges, each of which will be followed with a detailed video explanation of the solution that we will walk through together.
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.
See you inside!