Functional programming is a
style of programming that is characterized by short functions, lack of
statements, and little reliance on variables. You will learn what
functional programming is, and how you can apply functional programming
in Python.
In this video course, we
will learn what functional programming is, and how it differs from other
programming styles, such as procedural and object-oriented programming.
We will also learn why and when functional programming is useful, and
why and when it makes programs unnecessarily complex. Then we go on to
explore lambda expressions, which are short one-line functions, and are
the purest form of functional programming that Python offers. Next, we
will learn about higher-order functions: functions that accept other
functions as argument, or return other functions as return values. In
Python, higher-order functions are elegantly supported through
decorators. We will also encounter important concepts from functional
programming, such as monads, currying, statelessness, side-effects,
memoization, and referential transparency; these concepts may initially
seem odd to Python programmers, but we will see how they are elegantly
supported by the language. In fact, many Python programmers already make
use of concepts from functional programming without being aware of
doing so.
All the videos in this
course contain hands-on examples of the introduced concepts. We will
also consider several different implementations of an interactive
calculator to illustrate how you can use functional programming in a
simple-but-complete program.
About The Author
Sebastiaan Mathôt currently works as assistant professor at the University of Groningen in the Netherlands. He is the lead developer at OpenSesame, which is an open-source, Python-based program for implementing psychology and neuroscience experiments. Sebastiaan is also the designer of DataMatrix, a Python library for numeric computing that is focused on elegance and readability.
Sebastiaan also gives regular workshops on using OpenSesame and Python for scientific purposes, and regularly publishes Python tutorials on his YouTube channel. As such, he has extensive experience in teaching Python and making advanced topics seem as easy as possible.