Learn Functional Programming in Python
Gain insights into functional programming in Python, learn about functions as objects, recursion, closures, and generators, and discover how to confidently apply these concepts to your projects.
I have been a professional developer for over 35 years, working on in various fields, including machine control, embedded systems, image processing, web based information management systems, and mathematical visualisation software. I have mainly worked in C++, Java and Python, but also assembly language, Pascal, PHP, JavaScript and others, running on anything from 8 bit micros to PCs to mainframes. I currently work as a software architect in the medical imaging industry. I also write for pythoninformer.com, and work on generativepy, an open source generative art project.
Join 3.1 million developers at
What You'll Learn
- Learn to implement functional programming in Python.
- Understand the pros and cons of functional programming in Python.
- Master the ways to obtain function objects.
- Grasp the concept of mutability and recursion in Python.
- Acquire skill of using closures as function factories.
- Learn to differentiate between iterators and iterables.
- Become competent in creating, reducing, and transforming iterables.
- Master list comprehensions and generator comprehensions.
- Implement function composition and partial application.
- Get familiar with functors, applicatives, and monads.
Learning Roadmap
1.
Introduction
Introduction
2.
Functions as Objects
Functions as Objects
3.
Mutability
Mutability
6 Lessons
6 Lessons
4.
Recursion
Recursion
8 Lessons
8 Lessons
5.
Closures
Closures
8 Lessons
8 Lessons
6.
Iterators
Iterators
13 Lessons
13 Lessons
7.
Transforming Iterables
Transforming Iterables
9 Lessons
9 Lessons
8.
Reducing Iterables
Reducing Iterables
7 Lessons
7 Lessons
9.
Comprehensions
Comprehensions
5 Lessons
5 Lessons
10.
Generators
Generators
7 Lessons
7 Lessons
11.
Partial Application and Currying
Partial Application and Currying
10 Lessons
10 Lessons
12.
Functors and Monads
Functors and Monads
6 Lessons
6 Lessons
13.
Useful Libraries
Useful Libraries
2 Lessons
2 Lessons
Martin McBride
I am a software developer, specialising in computer graphics, sound, and mathematical programming. I have been writing code since the 1980s in a wide variety of languages from assembler through to C++, Java and Python.
Trusted by 3.1 million developers working at companies
Anthony Walker
@_webarchitect_
Evan Dunbar
ML Engineer
Software Developer
Carlos Matias La Borde
Souvik Kundu
Front-end Developer
Vinay Krishnaiah
Software Developer
Built for 10x Developers












Free Resources