We're sorry but this app doesn't work properly without JavaScript enabled. Please enable it to continue.

Learn Functional Programming in Python

Add functional programming to your toolbox without pretending Python is Haskell.

What you'll learn in this Python course

Functional programming is back in vogue. There's a reason front-end frameworks like React and Vue are moving toward functional programming, and after this course you'll more than understand its benefits. We'll dive in-depth into all of the foundational concepts of functional programming in a familiar language.

Chapter List

1
Functional Programming
Learn about the difference between OOP and functional styles, and what the real difference is: imperative vs. declarative
2
First-Class Functions
First-class and higher-order functions are foundational to everything we do in the functional paradigm.
3
Pure Functions
My favorite part of functional programming is the focus on pure functions that are easy to test and reason about
4
Recursion
While not unique to functional programming, recursion is a powerful tool that is used often when trying to avoid imperative code
5
Function Transformations
Learn how to transform functions into other functions to write more abstract and generalized code
6
Closures
Learn about encapsulating state within functions and how to use closures to write more expressive code
7
Currying
Learn to transform a function with multiple parameters into a series of functions with one parameter, and why you might want to do that
8
Decorators
Learn about Python's decorators and how they're essentially syntactic sugar for higher-order functions
9
Sum Types
Learn about sum types, a powerful way to represent data that is used in many functional languages

Join 42,030 students in the Learn Functional Programming in Python course

Read reviews of their learning experiences

I learned a lot about functional programming.

(5/5)
Skyler Decoteau profile image

Skyler Decoteau

United States

Very fun and challenging course the ending really made me think!

(5/5)
Bilal Maqsood profile image

Bilal Maqsood

United States

The Decorators chapter is a bit rushed at its last couple of lessons, they need to elaborate a little more. Perhaps do so in the same way as the Sum Types chapter did elaborate. Some approaches seem convoluted, but are good to know about because they are likely abused in code out in the wild.

(4/5)
thomas peters II profile image

thomas peters II

United States

Really tough course, concepts are hard to get my head around but its very satisfying when it makes sense. I recommend doing challenges a few days after learning each one. For example going back and doing a level 5 or 6 challenge on lambdas or map or filter to really get it figured out.

(4/5)
Stephen Fletcher profile image

Stephen Fletcher

Ireland

Brutal, but rewarding

(5/5)
Atte Lemmetty profile image

Atte Lemmetty

Spain

The course was definitely challenging, which I appreciate. But it handled topics on the assumption that I understood other complex ideas that I had not yet covered

(2/5)
TJ Wietecha profile image

TJ Wietecha

United States

I WANTED TO DIE THIS WAS HARD

(5/5)
Nebulo  profile image

Nebulo

Bangalore, India

great course

(5/5)
Jeff Sharps profile image

Jeff Sharps

United States

Dang! that was so good. Very challenging, but you learn a lot!

(5/5)
ALBERTO OLA profile image

ALBERTO OLA

Guatemala

Showing 1-9 of 1090

or view more reviews

Mediocrity doesn't cut it anymore

The only way to become a great developer is to write a lot of code

Avoid tutorial hell

by writing a ton of code

Stay motivated with

a game-like curriculum

Build portfolio projects

to prove your skills

Delve deeper

into foundational concepts

Learn flexibly online

without interrupting your life

For 1% the price of college

to minimize your financial risk

Frequently asked Questions

Got questions? We've got answers

Yes! It's free to create an account and start learning. You'll get all the immersive and interactive features for free for a few chapters. After that, if you still haven't paid for a membership, you'll be in read-only (content only) mode.