An error occured adding a product to your cart, you may only have 100 items in your cart.

Mastering Haskell Programming [Video]

Mastering Haskell Programming [Video]

Samuel Gélineau

Harness the power of functional programming with advanced Haskell concepts
Mapt Subscription
FREE
€29.98/m after trial
Video
€121.38
RRP €142.78
Save 14%
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
€0.00
€121.38
€29.98p/m after trial
RRP €142.78
Subscription
Video
Start 30 Day Trial
Subscribe and access every Packt eBook & Video.
 
  • 5,000+ eBooks & Videos
  • 50+ New titles a month
  • 1 Free eBook/Video to keep every month
Start Free Trial
 
Code Files
Preview in Mapt

Video Details

ISBN 139781786465016
Course Length6 hours 4 minutes

Video Description

Haskell is a lazy, purely-functional programming language with a very precise type system. Each of these features make Haskell quite different from mainstream object-oriented programming languages, which is where Haskell's appeal and its difficulty lie.

In this course, you’ll discover different ways to structure interactions between the program and the outside world. We’ll look at some subtler aspects of the IO monad, such as lazy IO and unsafePerformIO. In addition to the IO monad, we’ll also check out two other structured forms of interaction: streaming libraries and functional reactive programming.

Then we explore parallel, concurrent, and distributed programming. Thanks to purity, Haskell is especially well-suited for the first two, and so there are a number of approaches to cover. As for distributed programming, we focus on the idea of splitting a large monolithic program into smaller microservices, asking whether doing so is a good idea. We’ll also consider a different way of interacting with other microservices, and explore an alternative to microservices.

By the end of this course, you’ll have an in-depth knowledge of various aspects of Haskell, allowing you to make the most of functional programming in Haskell.

Style and Approach

This course includes in-depth content balanced with tutorials that put theory into practice. It will give you both an understanding and practical experience, enabling you to indulge in the art of functional programming with Haskell while taking you through core concepts.

Table of Contents

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

What You Will Learn

  • Find out how to structure larger Haskell programs
  • Use the Parsec library to easily parse structured inputs
  • Get acquainted with the process of writing an interpreter, a type checker, and a compiler
  • See how to model your problem domain with precise types and how to reap the benefits of doing so
  • Work with Deterministic Communication using IVars and Deterministic Collaboration using LVars
  • Understand how to do concurrent and distributed programming in Haskell
  • Know how to cope with the uncertainties of communication in a distributed application

Authors

Table of Contents

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

Video Details

ISBN 139781786465016
Course Length6 hours 4 minutes
Read More

Read More Reviews

Recommended for You

Fundamentals of Practical Haskell Programming [Video] Book Cover
Fundamentals of Practical Haskell Programming [Video]
€ 142.78
€ 121.38
Learning Haskell Programming [Video] Book Cover
Learning Haskell Programming [Video]
€ 130.78
€ 111.18
Building an Application with Functional Haskell [Video] Book Cover
Building an Application with Functional Haskell [Video]
€ 142.78
€ 121.38
Advanced Data Analysis with Haskell [Video] Book Cover
Advanced Data Analysis with Haskell [Video]
€ 130.78
€ 111.18
Getting Started with Haskell Data Analysis [Video] Book Cover
Getting Started with Haskell Data Analysis [Video]
€ 77.98
€ 66.30
Mastering Go Programming [Video] Book Cover
Mastering Go Programming [Video]
€ 227.98
€ 193.80