Stay ahead by continuously learning and advancing your career. Learn More

Mastering Haskell Programming Online Course

description

Bookmark Enrolled Intermediate

Mastering Haskell Programming Online Course

About the Course

Haskell is a lazy, purely functional programming language known for its rigorous type system. These distinctive features set it apart from mainstream object-oriented languages, offering both unique advantages and certain challenges.

In this course, you'll explore various ways to manage interactions between Haskell programs and the outside world. We'll delve into advanced concepts of the IO monad, including lazy IO and the use of unsafePerformIO. Beyond the IO monad, you'll also be introduced to structured interaction patterns through streaming libraries and functional reactive programming (FRP).

Next, we turn to parallelism, concurrency, and distributed computing. Haskell’s purity makes it particularly well-suited for parallel and concurrent programming, so we’ll examine several techniques in these areas. For distributed systems, we’ll consider breaking monolithic applications into microservices—evaluating when this is beneficial—and also explore alternative approaches to service-oriented design.

By the end of the course, you'll have a deep understanding of Haskell’s capabilities in functional programming and practical techniques to apply them effectively.

Course Curriculum

Tracking Side-Effects Using IO

  • The Course Overview
  • Installation and Setup
  • IO as a "Sin Bin"
  • Exception Handling
  • Fewer Sins Using the Free Monad
  • Benign Side-Effects Using unsafePerformIO
  • Simple Streaming Using Lazy IO

Chaining Side-Effects Using Streaming

  • Pure Streaming Using Lazy Lists
  • Composing Finite and Infinite Streams
  • Who's Driving? Push, Pull… or Both!
  • Transforming Effectful Streams Using the Free Monad

Interactive Applications Using Functional Reactive Programming

  • Events, Behaviors, and Signals
  • Local and Global States
  • Higher-Order Signals and Time Leaks
  • Pure, Monadic, and Arrowized APIs
  • Continuous, Synchronous, Total Time

Parallel Programming in Haskell

  • Parallel and Concurrent Algorithms
  • Manual Parallelism Using the Free Applicative
  • Laziness and Parallelism
  • Purity and Parallelism
  • Deterministic Communication Using IVars
  • Deterministic Collaboration Using LVars

Concurrent Programming in Haskell

  • Manual Concurrency Using forkIO
  • Taming Asynchronous APIs Using ContT
  • Opportunistic Concurrency Using Async
  • Laziness and Concurrency
  • Manual Signaling Using MVars
  • Automatic Signaling Using TVars
  • Effect Tracking and Concurrency

Distributed Programming in Haskell

  • Combinator Libraries
  • Monad Transformers
  • Nesting Architectures
  • Precise Types, Program Boundaries, and Microservices
  • Optimizing Microservice Requests Using Haxl
  • Distributed Concurrent Programming Using Cloud Haskell
  • CRDTs, Type Class Laws, and Eventual Consistency

 

Reviews

Be the first to write a review for this product.

Write a review

Note: HTML is not translated!
Bad           Good

Tags: Mastering Haskell Programming Online Course,