2 ms·
My personal notion of a strong type system is one built around function type signatures. In order to have that, you need static typing of variables and constan
by SkyMarshal 3y ago
My personal notion of a strong type system is one built around function type signatures.
In order to have that, you need static typing of variables and constants, like most statically typed imperative languages have. But you also need a method to specify required input types and expected output types of all functions.
In a purely functional language like Haskell where there are only functions, and functions are first class and can be both inputs to or outputs from other functions, then the entire operation of the program is encapsulated in its function type signatures.
The entire flow of data and logic through the program can be type-checked by the compiler, and function implementations checked against their type signatures.