LEARNING PATH: Python: Functional Programming with Python
Perceive functional programming with Python to efficiently solve real-world problems
Description
Python is not a functional programming language, but it is a multi-paradigm language that makes functional programming easy to perform, and easy to mix with other programming styles. Python is a high level language used in many development areas, like web development, data analysis, desktop UI and system administration. 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. If you're interested to use Functional Programming as a powerful tool to solve many real-world problems by writing robust and bug-free code, then go for this Learning Path.
Packt’s Video Learning Paths are a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it.
The highlights of this Learning Path are:
- Understand common functional design patterns, and how these apply to Python
- Learn the important role that iterators play in functional programming
In this Learning Path, you’ll learn what functional programming is, and how it differs from other programming styles, such as procedural and object-oriented programming. Then you’ll go on to explore lambda expressions, which are short one-line functions, and are the purest form of functional programming that Python offers. Next, you’ll learn about higher-order functions: functions that accept other functions as an argument, or return other functions as return values. You’ll also encounter important concepts from functional programming, such as monads, currying, statelessness, side-effects, memorization, and referential transparency; these concepts may initially seem odd to Python programmers, but you’ll see how they are elegantly supported by the language.
Further, you’ll learn everything there is to know about iterators in Python and how crucial they are in functional programming, where they are used, among other things, to implement repetitive logic and coroutines. You’ll learn about all standard iterators and iterator functions that Python offers. You’ll also learn to implement your own iterators. Functional programming makes heavy use of iterators, and you’ll learn how you can use them in functional programming through an interactive calculator application.
By the end of this Learning Path, you will get a thorough understanding of iterators to solve many real-world problems by writing robust, testable, and bug-free code.
Meet Your Expert:
We have combined the best works of the following esteemed authors to ensure that your learning journey is smooth:
SebastiaanMathô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.
What You Will Learn!
- Higher-order functions and Lambda expressions (nameless functions)
- Error handling in Functional Programming
- Understand common functional design patterns, and how these apply to Python
- Understand what an iterator is in Python
- Iterators and iterator functions built into Python
- Create your own iterators
- Understand what a generator coroutine is
- Master list and dict comprehensions and generator expressions
Who Should Attend!
- This Learning Path is intended for developers who have a basic understanding of Python and want to expand their developer toolbox with important new techniques.