September 22, 1999 | Strong Typing | Slide #21 |
datatype MyNum = IV of int | FV of real;
val n = IV(3);
val n = IV 3 : MyNum
Let's try again to screw up the union types:
fun intval (IV i) = i | intval (FV f) = f ;
Error: rules don't agree (tycon mismatch) expected: MyNum -> int found: MyNum -> real rule: FV x => x
One last try:
sqrt(n);
Error: operator and operand don't agree (tycon mismatch) operator domain: real operand: MyNum in expression: sqrt (n)
Next | Copyright © 1999 M-J. Dominus |