HOME SCALA & F# JAVA .NET WEB GROOVY & GRAILS ANDROID & IOS NOSQL ARCHITECTURE AGILE & SCRUM AGILE DEVELOPER  
Well-Typed's Advanced Haskell (HASKELL-ADVANCED-01-02)
CODE: HASKELL-ADVANCED-01-02          DURATION: 2 DAY/S

This two-day Haskell course gives you the chance to deepen your understanding and master some of Haskell's more advanced concepts.

In this course, you will learn all about Haskell's evaluation mechanism and how to debug performance problems. You will learn what techniques and data structures to use for the most idiomatic and best performing code. We will discuss abstractions offered for both concurrency and high-level, deterministic parallel programming, enabled by Haskell's explicit side effects. There will be an in-depth look at Haskell's type system, helping you to understand how types can guide the user on how to correctly use complex code, and how to design your own libraries that can be used safely by others.


LEARN HOW TO:
In this course, you will learn all about:
  • Haskell's evaluation mechanism and how to debug performance problems.
  • Techniques and what data structures to use for getting the most idiomatic and best performing code.
  • Abstractions offered for both concurrency and high-level, deterministic parallel programming, enabled by Haskell's explicit side effects.
  • Haskell's type system, helping you to understand how types can guide the user on how to correctly use complex code, and how to design your own libraries that can be used safely by others.
PROGRAMME

The course will cover the following topics:

Functional data structures

  • The difference between immutable (persistent) and mutable data structures.
  • Typical functional data structures and their performance.
  • Memory layout of Haskell data structures.

Reasoning about evaluation

  • How lazy evaluation really works.
  • The advantages and pitfalls of lazy evaluation.
  • Profiling Haskell programs.
  • Space leaks and how to fix them.
  • General advice on how to write Haskell code that performs well.

Concurrency and parallelism

  • Lightweight threads and communication between threads.
  • Software Transactional Memory for composable, lock-free concurrent programs.
  • Deterministic pure parallelism using the Par monad. Using Threadscope for debugging the performance of parallel code.

Programming patterns

  • Abstracting from recurring patterns.
  • Monads versus applicative functors.
  • Traversals of data structures.
  • How to write systematic compositional code on large user-defined datatypes.
  • Stacking effects: how to combine monads.
  • Monad transformers.

Type-level programming

  • Haskell's kind system: the types of types.
  • Higher-rank polymorphism.
  • Generalized algebraic datatypes and existential types.
  • How to use the powerful type system to capture complex invariants of your code and thereby eliminate sources of errors.
NEXT SESSION
The next course will be delivered at The Skills Matter eXchange - London, on 10 Jul 2013 by Edsko de Vries.
COURSE DATES & REGISTRATION
Date City Cost (ex vat) Offer
10-07-13 London �1195.00 - Book Online Now
10-10-13 London �1195.00 �1075.00 if booked before 11-08-13 Book Online Now
Book Online or Call Sales on +44 (0)207 1839040
ABOUT THE AUTHOR
Andres L�h is a long-time functional programming enthusiast. He has started using Haskell in 1997 while being an undergraduate studying mathematics.
More about Andres L�h
IN PARTNERSHIP WITH WELL-TYPED
IS THIS COURSE FOR YOU?

If you have some experience developing in Haskell, but would like to learn how to unleash the full power of the language, understand the details about lazy evaluation, learn how to write code that is not only robust but also fast, and dive into the details of Haskell's advanced type system - then this course is for you!


COURSE PREREQUISITES

Some experience with Haskell and understanding of basic Haskell concepts such as covered by the course Fast Track to Haskell is assumed in this course.

Important! 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 the sales team on +44 207 183 9040 or email sales. A full installation guide for the course software will be provided with your joining instructions.


COURSE LABS & EXERCISES

The course is a mixture of presentations and frequent hands-on exercises. You will write and adapt several example programs, and learn how to build applications that use existing Haskell libraries. You will also have opportunity to obtain feedback from our experts on the code that you have written.


COURSE DATES & REGISTRATION
Date City Cost (ex vat) Offer
10-07-13 London �1195.00 - Book Online Now
10-10-13 London �1195.00 �1075.00 if booked before 11-08-13 Book Online Now
Book Online or Call Sales on +44 (0)207 1839040
� Copyright 2003-2013, Skills Matter Ltd
About Us  Jobs  Find Us  Meeting & Training Rooms  Newsletter  Jobs: Sales Executive  Jobs: Student SkillsCaster  jobs - junior event coordinator  Open Source Journal  Jobs: Sponsorship Development  jobs: Marketing & Sales Graduate Internship  Jobs: HR Manager  jobs-Join Our Dev Team  DevOps Engineer  Front-End Engineer  Test Engineer