
On Mon, May 18, 2009 at 2:06 PM, Don Stewart
Exactly: focus on what the user wants to do (e.g. write multicore code, write safe code, write code quickly), not how that is achieved: "bounded parametric polymorphism" or "monads"
Parametric polymorphism is a big win, and highlights something a user wants to do. A *shallow* overview (one bullet, one function) might fit. Off the top of my head: incr :: (Num a) => a -> a incr = (+ 1) Writing that operation in other languages is either (a) repeated for every numeric type or (b) not typesafe. Haskell is one of the few that delivers both, and that is worth underscoring. And it gives you an opportunity to wave your hands and talk about type inferencing without wasting room on a slide. Don is right. Forget the details. Cover the capabilities, not the mechanics. -- Adam