Haskell for Programmers

Bind

Haskell is quickly becoming the go-to language for high-performance and mission critical software. Yet for programmers who are experienced with traditional, imperative programming languages, Haskell’s way of doing things can seem counter intuitive and difficult to understand. But learning Haskell doesn’t have to be hard!

This 3-day workshop moves rapidly through the basics and digs deeply into seemingly complex topics such as monads and working with mutable state. The primary focus of this workshop is on real world software development with the occasional discussion of theory.

You’ll write and optimize software using popular Haskell tools and packages such as Cabal, cabal-dev, HLint, ByteString, and Attoparsec. After the workshop you’ll be ready to write efficient Haskell code for real world production use.

Why Haskell?

Simple. Haskell is leading the way in compiler technologies for generating efficient and safe applications without placing unnecessary burdens on the programmer. By leveraging the Haskell type system the safety of code can be enforced, meaning bugs must be dealt with by the programmer instead of being passed silently on to users. While Haskell can’t ensure that all bugs have been squashed, it gets a lot closer than most mainstream languages.

Want to know more? This might help.

Agenda

Day 1
  • What is Haskell?
  • Syntax basics
  • Data types and literals
  • Type classes
  • Polymorphic functions
  • Polymorphic types
  • Lazy types
Day 2
  • Thinking functionally
  • Type-driven development
  • User defined types
  • Composition
  • Modeling failure
  • Advanced type classes (e.g. Monoid, Functor, Applicative, Monad)
Day 3
  • Let’s write real code!
  • QuickCheck and HSpec
  • Thunks and boxes
  • Time/space profiling
  • Making things strict
  • Exceptions
  • Moving forward

Hello World!

What’s Included?

  • Catered lunch each day

  • Access to all code used during the workshop

  • Digital copies of all class materials

  • 1 hour of support after workshop completion

Prerequisites

  1. Prior professional experience programming with an imperative language such as C, C++, Java, Ruby, Python, C#, etc.

  2. A laptop or the willingness to lug around a desktop computer. A unix-like operating system (e.g. Linux, Mac OS X) is highly recommended but not necessary.

Upcoming Workshops

  • There are no upcoming workshops. Contact us to schedule an on-site workshop.