| ||Expressions, Types, and Functions - slide 15 : 46|
An example of type checking
Is the expression (+ 1 (if (even? x) 5 "five")) correct with respect to types?
- Weak typing
- It is not realized that the expression (+ 1 "five") is illegal.
- We can imagine that it returns the erroneous value 47
- Strong typing
- If, for instance, x is 2, the expression (+ 1 (if (even? x) 5 "five")) is OK, and has the value 6
- If x is odd, it is necessary to identify this as a problem which must be reported
before an evaluation of the expression is attempted
- Static typing
- (+ 1 (if (even x) 5 "five")) fails to pass the type check, because the type of the expression cannot be statically determined
- Static type checking is rather conservative