https://realpython.com/python-functional-programming/
- evaluation of functions
- pure function - output value follows soley from it’s input values
- program consists of entirely functions
- computation proceeds by nested or composed function calls - without changes to state or mutable data
Advantages:
- High level - describe the result - single concise statements
- Transparent - behaviour of a pure function depends on it’s inputs and outputs (without intermediary values) = no side effects
- Paralellizable - no side effects = easier to run in parallel
Python Support
Functional programming requires: 1, function as an argument 2, return a function to it’s caller
- Functions can be assigned to variables
- Functions can be return values