Polymorphism and Pythonic pattern matching
Some functional programming languages offer clever approaches to working with statically typed function definitions. The issue is that many functions we'd like to write are entirely generic with respect to data type. For example, most of our statistical functions are identical for
floating-point numbers, as long as division returns a value that is a subclass of
numbers.Real (for example,
float). In order to make a single generic definition work for multiple data types, sophisticated type or pattern-matching rules are used by the compiler.
Instead of the (possibly) complex features of statically typed functional languages, Python changes the issue using dynamic selection ...