December 2021
Beginner
840 pages
47h 29m
English
Operator/function overloading refers to using the same function name for multiple function definitions, where the type signature of each definition involves a different return type, different types of parameters, and/or a different number of parameters. When an overloaded function is invoked, the applicable function definition to bind to the function call (obtained from a collection of definitions with the same name) is determined based on the number and/or the types of arguments used in the invocation. Function/operator overloading is also called ad hoc polymorphism. In general, operators/functions cannot be overloaded in ML and Haskell because every operator/function must have only one type: