Wearing the hair shirt Wearing the hair shirt - Microsoft Research
Wearing the hair shirt Wearing the hair shirt - Microsoft Research Wearing the hair shirt Wearing the hair shirt - Microsoft Research
Haskell 98 Haskell development Haskell 98 •Stable •Documented •Consistent across implementations •Useful for teaching, books Haskell + extensions •Dynamic, exciting •Unstable, undocumented, implementations vary...
Reflections on the process The idea of having a fixed standard (Haskell 98) in parallel with an evolving language, has worked really well Formal semantics only for fragments (but see [Faxen2002]) A smallish, rather pointy-headed userbase makes Haskell nimble. Haskell has evolved rapidly and continues to do so. Motto: avoid success at all costs
- Page 1 and 2: Wearing the hair shirt A retrospect
- Page 3 and 4: Haskell is 15 years old (born FPCA
- Page 5: Timeline Sept 87: kick off Apr 90:
- Page 9: Reflections on process Self-appoin
- Page 12 and 13: Syntactic redundancy Seductive ide
- Page 14 and 15: “Expression style” Define a fun
- Page 16 and 17: Example (ICFP02 prog comp) Pattern
- Page 18 and 19: What really matters?
- Page 20 and 21: But... Laziness makes it much, muc
- Page 22: Combinator libraries Recursive valu
- Page 25 and 26: Monadic I/O A value of type (IO t)
- Page 27 and 28: Connecting I/O operations (>>=) ::
- Page 29 and 30: Control structures Values of type (
- Page 31 and 32: Monads Exceptions type Exn a = E
- Page 33 and 34: The IO monad The IO monad allows
- Page 35 and 36: What have we achieved? ...without
- Page 37 and 38: Open challenge 1 Open problem: the
- Page 39 and 40: Monad summary Monads are a beautif
- Page 41 and 42: What really matters? Laziness Purit
- Page 44 and 45: Type classes class Eq a where (==)
- Page 46 and 47: Type classes over time Type classe
- Page 48 and 49: Quickcheck propRev :: [Int] -> Bool
- Page 50 and 51: Extensiblity Like OOP, one can add
- Page 52 and 53: Type-based dispatch class Num a whe
- Page 54 and 55: Cool generalisations Multi-paramet
Reflections on <strong>the</strong> process<br />
<br />
<br />
<br />
The idea of having a fixed standard<br />
(Haskell 98) in parallel with an evolving<br />
language, has worked really well<br />
Formal semantics only for fragments<br />
(but see [Faxen2002])<br />
A smallish, ra<strong>the</strong>r pointy-headed userbase<br />
makes Haskell nimble. Haskell has<br />
evolved rapidly and continues to do so.<br />
Motto: avoid success at all costs