SPA Conference session: Being Lazy

One-line description:An examination of Haskell idioms, coding style and development practice
Session format: Workshop (150 mins) [read about the different session types]
Abstract:This workshop will look at the differences in approach to developing software and in expressing solutions in the lazily-evaluated, pure functional language Haskell as compared to more mainstream OO languages.

The presenters are both developing in Haskell in the Equity Exotics area of Barclays Capital, having moved from many years of programming in OO languages. In this session they will present their observations of the key differences in both programming activity and resulting code. They will show simplified code examples from real projects.

This will not be a Haskell tutorial in that it will not attempt to give a broad introduction or seek to endow participants with Haskell programming skills. It will focus on highlighting the impact the language features can have on how software is written.
Audience background:This session is for experienced developers interested in the functional paradigm and Haskell in particular. No experienced of Haskell will be assumed, but the material may be of particular benefit to participants that have toyed with the language and have found it difficult to make some of the mental shifts.
Benefits of participating:* Understand the functional paradigm, lazy evaluation and Monadic IO
* Learn some key Haskell idioms and style tips
* Experience software development in Haskell
Materials provided:Presentation and coding exercises
Process:The first half of the session will be mostly presentation interspersed with short exercises. The second half will be a worked example of tackling a simple development problem in Haskell as a live coding session on the projector.
Detailed timetable:05 Introduction
05 Warm up coding exercise in pairs
50 Presentation
15 Coding exercise in pairs

30 Break

70 Live coding worked example
05 Reflection and close
Outputs:If facilities are available, the worked example could be videoed and published on the website.
History:This session has not been run before. It is in some ways a follow on from the presenters' working group at SPA2009.
1. Peter Marks
2. Ben Moseley