Functional Programming in Scheme Expressions, Types, and Functions
Types in functional programming languages
Before we proceed we will compare the handling of types in Scheme with
the handling of types in other functional programming languages.
Specifically, we compare with Haskell and ML.
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.