5.1 Function Definitions5.2 Default Arguments5.3 Variadic Arguments5.4 Keyword Arguments5.5 Variadic Keyword Arguments5.6 Functions Accepting All Inputs5.7 Positional-Only Arguments5.8 Names, Documentation Strings, and Type Hints5.9 Function Application and Parameter Passing5.10 Return Values5.11 Error Handling5.12 Scoping Rules5.13 Recursion5.14 The lambda Expression5.15 Higher-Order Functions5.16 Argument Passing in Callback Functions5.17 Returning Results from Callbacks5.18 Decorators5.19 Map, Filter, and Reduce5.20 Function Introspection, Attributes, and Signatures5.21 Environment Inspection5.22 Dynamic Code Execution and Creation5.23 Asynchronous Functions and await5.24 Final Words: Thoughts on Functions and Composition