Python is often understood to be a imperative and object oriented programming language and most of the Python code you write and read will be in this style. But Python also has support for functional programming patterns that are useful for writing more concise and testable code.



In our session we will be looking at a few of this concepts, e.g.



Iterators and generators List comprehensions map/reduce (and why is it useful) recursion lambda expressions function decorators as well as the the functools module.