WORKSHOP

Haskell Fundamentals (4-Day Course) with Alejandro Serrano

HASKFNDM4D-47D-02

  4 days

English  

Gain a solid understanding of the fundamental concepts of Haskell, a powerful functional programming language, in this introductory course with Alejandro Serrano.

Haskell is an advanced open source language that’s purely functional. It features concise built-in concurrency and parallelism, thousands of libraries, and a rich ecosystem making it a valuable tool for any programmer.

Learn the basic concepts, techniques of this mathematical-based language, change the way you think about programming, and start developing concise programs with increased type safety.

Advanced Kubernetes Concepts with Jérôme Petazzoni

This in-depth course combines virtual classroom lectures and hands-on guided exercises designed to introduce attendees to all the concepts, ideas, techniques, and libraries that they’ll need to start developing their first programs in Haskell.


This course is run virtually over 4 half‑day sessions.

Our virtual courses offer the same expert-led, hands-on experience we've offered since 2013 — accessible from the comfort of your own home (office).

You’ll join Alejandro and participants from around the globe in a virtual classroom where you’ll utilize collaboration tools like Zoom and Slack to learn, discuss, and get hands-on with in-depth exercise sets. By the end of day one, you’ll be developing a small server that takes and responds to JSON requests.

Please note, this event runs over 4 days on Mondays, Tuesdays, Thursdays and Fridays. There is no class on Wednesdays.

Online Courses for Software Professionals at Skills Matter


Learn how to:

This course covers the foundations of Haskell, including:

  1. Simple Constructs
  2. Algebraic Data Types and Type Classes
  3. Input/Output
  4. Functional Error-Handling
  5. Higher-Kinded Type Classes: Functor & Monad
  6. Higher Kinded Type Classes: Applicative & Traversable
  7. Laziness
  8. Async, STM, Streaming, & Resources
  9. Combining Effects

About the Author

Alejandro Serrano Mena

Alejandro Serrano serves as a Senior Software Engineer at 47 Degrees, where he devotes his time to Haskell training and the development of Open Source projects for the Haskell ecosystem. Previously, he held several teaching and research positions at Utrecht University, where he obtained a Ph.D. in Software Technology (on the attractive-sounding topic of “error messages for compilers”).

Available dates

Dates coming soon

Can't make it on any of these dates?
Our team is happy to discuss other options with you.
Contact us at sales@skillsmatter.com and mention ref: HASKFNDM4D-47D-02.
Private tuition and large-group discounts are also available. Find out more here.

Who should take this workshop?

This course is for developers who want to straighten their knowledge in Haskell.

Prerequisites

One year of experience with any object-oriented or functional programming language.

Workshop Outline

Simple Constructs
  • Simple definitions
  • Definitions using pattern matching and guards
  • Local bindings with let and where
  • Pattern matching over lists, recursion
  • Higher-order functions: maps and folds
  • Anonymous functions and partial application
Algebraic data types and type classes
  • Record types, and record syntax
  • Enumerations
  • General shape of algebraic data types
  • Differences from OOP modeling
  • Polymorphic types: lists, trees
  • First-order type classes: Eq, Ord, Show
  • Automatic derivation
Input/output
  • Concept of purity and tagging with IO
  • Do blocks: pure vs. impure values
  • Basic console and file input/output
  • Working with callbacks (example using network-simple)
  • Small introduction to streaming
Functional error handling
  • Maybe and Either as polymorphic types
  • Combinators to work on the happy path
  • Dealing with errors in IO: exceptions
Higher-kinded type classes: Functor and Monad
  • Looking at commonalities in maps -> Functor
  • Notion of type constructors and higher-kinded classes
  • Simulating stateful computations in Haskell
  • Looking at commonalities in bind -> Monad
  • Monadic utilities
Higher-kinded type classes: Applicative and Traversable
  • Applicative as generalizing map to n-ary functions
  • Applicative style programming
  • Generalizing map to mapM to traverse
Laziness
  • Execution model with thunks
  • Cyclic and infinite structures
  • Forcing execution to avoid leaks
  • IO, exceptions and laziness
Async, STM, streaming, resources
  • Spawning new computations with async
  • Concurrent execution, racing
  • Concurrent access with Software Transactional Memory
  • Managing single resources
  • Managing pools of resources



Thanks to our partners


Platinum

Haskell Fundamentals (4-Day Course) with Alejandro Serrano
Dates coming soon