| | Expressions, Types, and Functions - slide 16 : 46 |
Types in functional programming languages
Scheme is not representative for the handling of types in most contemporary functional programming languages
- ML and Haskell
- Uses static typing ala implicit type inference
- Some meaningful programs cannot make their way through the type checker
- There will be no type related surprises at run time
- Scheme
- Is strongly typed with late reporting of errors
- Type errors in branches of the program, which are never executed, do not prevent program execution
- There may be corners of the program which eventually causes type problems
Due to the handling of types, Scheme and Lisp are elastic and flexible compared with ML, Haskell, and other similar language
which are quite stiff and rigid.