Haskell is the world's leading purely functional programming language that offers a radical and elegant attack on the whole business of writing programs. In the last two or three years there has been an explosion of interest in Haskell, and it is now being used for a bewildering variety of applications.In this tutorial, I will try to show you why programming in Haskell is such fun, and how it makes you think about programming in a new way.I'm going to use xmonad (http://xmonad.org) as my running example; it's an X11 window manager written entirely in 500 lines of Haskell. Based on xmonad I will show you how towrite functional programstest them using QuickCheckwrite imperative programscall foreign functionsuse Haskell for scripting applicationsI won't assume you know any functional programming at all, but I will assume that you are an experienced professional programmer, so I will move along quite briskly.From the O'Reilly Media Open Source Convention, July 23, 2007. Video provided by Galois. Slides are available here.