1. Atypical Types
2. Good AFTERNOON.
3. Shameful confession
4. In the programming community, we see a lot of holy wars.
5. For example, structured programming, or goto?
6. Before that, there was a holy war about high-level languages vs. assembly language.
7. Manual memory allocation vs. automatic garbage collection.
8. One of these discussions that is still going on concerns strong vs. weak type systems.
9. In 1999 ago I gave a talk on this topic.
10. I said the question was still open.
11. Why Types?
12.
13. 1955
14. Early Type Systems: FORTRAN
16. Early Type Systems: Lisp
17. Static Typing in ALGOL-based languages
18. Typing: Hard to Get Right
20. C Example
21. Typing in Pascal and C is a Failure
22. Coping With Failure
23. 1999 vs. Today
25. Static Typing that Works
26. The Haskell Programming Language
27. Types in Haskell
33. Overloading
36. Overloaded constants
38. Overloading
39. Big Deal?
40. Type inference
46. Haskell types are always correct
48. Type Inference Example 2
49. Type Inference
53. Type Inference Example 3
54. Type Inference
59. Type Inference Example 3 Continued
60. Life with Haskell
61. A Spectacular Example
62. Splitting
63. Merging
64. Merge Sort
65. sort :: (Ord _a_) => [_t_] -> [_a_]
67. [E[ldquo]E]Go out with you? Sure, when [L[Arnold Schwarzenegger]L] is elected [L[president]L].[E[rdquo]E]
68. Huh???
69. sort [] = []
70. Where's the Bug?
71. Solution: Add a clause
72. Summary
73. Thank you!