Writing Haskell Programs
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
10 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Writing Haskell Programs to your Wishlist.

Add to Wishlist

Writing Haskell Programs

Learn how to create, build, run, and test Haskell programs and reuse existing Haskell packages
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
10 students enrolled
Created by Packt Publishing
Last updated 6/2017
Curiosity Sale
Current price: $10 Original price: $125 Discount: 92% off
30-Day Money-Back Guarantee
  • 2.5 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • See the edit, build, execute, and test cycle your code
  • Discover what Cabal files are for
  • Use the Stack build tool and hints and tips
  • Find out how to create modules
  • Understand how to use modules to organize programs
  • Get to know how to import symbols from modules
  • See how to search packages on Hackage and Stackage
  • Use packages from Hackage and Stackage
  • Discover how to publish your own packages
  • Explore some useful and popular Haskell packages
View Curriculum
  • Some comfort with introductory Haskell programming is expected.

Haskell is a powerful, purely functional programming language that allows developers to express their designs elegantly and succinctly. Modern Haskell tools such as Cabal and Stack also allow developers to build and manage large and complex systems and to consume a vast array of high-quality open source libraries.

First we will start this course by learning how to edit , build and test our Haskell code. Then we will learn how to create modules in Haskell. We will learn about the various Haskell repositories and how to use them.Once we have our Haskell package in place we will end by testing our package using third-party ecosystems.

This course builds on the foundations provided by the Fundamentals of Practical Haskell Programming course and helps to bridge the gap between introductory and advanced Haskell by teaching you how to manage and develop complex programs. We'll also dispel the myth that Haskell is only useful for toy programs.

This course covers the important parts of the Haskell development process that are frequently neglected by beginner-level tutorials.

About the Author

Richard Cook is a staff software engineer at Tableau Software and works on high-performance relational database systems. He works primarily in C++, but has experience in a broad range of languages and technologies. He is a keen user of Haskell in his spare time and is frequently able to apply his functional programming and Haskell experience to his daily work. He is organizer of the Seattle Area Haskell Users’ Group and an active member of the Seattle functional programming community. He is currently developing a machine-learning framework for Haskell.

He has a deep interest in programming languages and type systems in general, having developed compilers and developer tooling in the past. He is also a keen user of Python and C# and works regularly on all major desktop operating systems and dabbles with web applications.

Who is the target audience?
  • This course is for developers who already have experience with one or more programming languages, particularly object-oriented languages such as C++, Java, and C#.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
13 Lectures
Edit, Build, Execute, and Test Cycles
5 Lectures 48:14

This video will an overview of entire course.

Preview 02:42

Developing real Haskell programs requires a code editor that is up to the task, along with a build tool for managing dependencies.

Developing Haskell Programs

Cabal is the industry-standard method of building nontrivial Haskell packages.

Cabal Files

We’ll be using Stack for building our projects, and so we need to learn more about how to use the tool.

Stack in Detail

Typically, we’ll want quick feedback on our code changes. we may also want to iteratively develop test cases: Stack has various commands to help with this.

Stack Hints and Tips
Modules Explained
3 Lectures 47:45

As our programs become larger, we will find that keeping the entire source code in a single source file becomes unwieldy. We may also run into problems with name collisions, and we may want to control the accessibility of the different names within our program.

Preview 08:50

We will look at how to create our own modules from scratch in Haskell. We’ll also compare “exposed” vs. “other” modules as well as re-exporting names from modules.

Creating Modules

Functions defined in modules can be imported in various different ways: we can even use appropriately structured imports to handle identically named functions from different modules as well as to hide names from modules.

Consuming Modules
Packages and the Haskell Ecosystem
5 Lectures 01:07:46

Haskell’s most common package repository, Hackage, contains a wealth of high-quality open-source code; reusing other people’s code is a vital part of developing real-world programs and using packages is the standard way to do this in Haskell.

Preview 15:35

Given the range of packages available in the ecosystem, ways to effectively search repositories is an important skill.


Many packages exist, which solve the same problems in similar and, sometimes, different, ways: we will discuss the various factors of concern when wishing to make an informed choice.

Navigating Packages

Cabal and Stack offer many different ways to add dependencies on third-party packages: a brief introduction to the approaches will allow developers to depend on stable or development versions of the packages.

Consuming Third-Party Packages

Hackage tracks approximately 12,000 packages; it can be an overwhelming job for newcomers to any programming language to make choices between the many packages. It can be useful to know what the most common packages are for a range of common programming tasks.

A Brief Tour of Popular Packages
About the Instructor
Packt Publishing
3.9 Average rating
7,282 Reviews
51,940 Students
616 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.