Are you interested in a highly intensive, highly practical two day Haskell course? Join this workshop to learn Haskell's excellent capabilities for abstraction and how you can use Haskell to quickly develop correct programs that are close to a given specification.
At the centre of the Haskell language is its type system: types that do not get in the way because they can be inferred; types that can be polymorphic and overloaded in various ways; types that explicitly tag functions with side-effects. Learn how these features make Haskell unique, even among functional languages, and learn all about functional language concepts, by understanding Haskell's uncompromising approach.
While we will touch on the theoretical foundations of the language, the focus of this Haskell course is most definitely practice: You will learn how to best use the Haskell toolchain, about important best practices in program development, and you will gain a true understanding on how to best harness and utilise Haskell's power!
Upon completion of this Haskell course, you will be able to design robust functional programs in a principled and systematic way - the kind of things that are difficult to pick up from reading a book.
Learn how to:
- Read and write Haskell programs
- Use the Haskell tools productively
- Exploit the strengths of the Haskell language and its type system
- Use a functional programming design approach in your day-to-day programming tasks
Quick Tour of Haskell
- An overview of the most important language concepts of Haskell
Type-Directed Program Development
Defining functions systematically
An introduction to lists, tuples, and Maybe
Polymorphism and overloading
Polymorphic functions and code reuse
The power of parametricity
Understanding type classes
- Why effects should be explicit in the types
- Composing IO actions
- Structuring interactive programs
- An introduction to QuickCheck and SmallCheck
Patterns for effects
- Abstracting from common programming patterns
- The Maybe, list and state monads
- The monad interface
If you are a developer who wants to learn about functional programming, and Haskell specifically, but you have little or no experience with any functional language - then this course is for you! This course would also suit those wishing a refresher on Functional Programming and Haskell.
Some familiarity with programming in general is helpful, but no experience in functional programming languages or Haskell is expected
Bring your own hardware
You are requested to bring your own laptop for this course, with the Haskell Platform installed - to learn how to develop within your own environment.
If you are unable to bring a laptop for this course, please contact our community team on +44 207 183 9040 or email us.