Writing Haskell Programs

Course

Online

£ 150 VAT inc.

Description

  • Type

    Course

  • Methodology

    Online

  • Start date

    Different dates available

Learn how to create, build, run, and test Haskell programs and reuse existing Haskell packages.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 AuthorRichard 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.

Facilities

Location

Start date

Online

Start date

Different dates availableEnrolment now open

About this course

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

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Emagister S.L. (data controller) will process your data to carry out promotional activities (via email and/or phone), publish reviews, or manage incidents. You can learn about your rights and manage your preferences in the privacy policy.

Reviews

This centre's achievements

2021

All courses are up to date

The average rating is higher than 3.7

More than 50 reviews in the last 12 months

This centre has featured on Emagister for 6 years

Subjects

  • Editors
  • Programming
  • Export
  • Writing
  • Industry
  • Systems
  • Global
  • Works
  • Options

Course programme

Edit, Build, Execute, and Test Cycles 5 lectures 48:16 The Course Overview This video will an overview of entire course. Developing Haskell Programs Developing real Haskell programs requires a code editor that is up to the task, along with a build tool for managing dependencies.
  • Compare different Haskell editors and IDEs
  • Compare different build tools for Haskell code
  • Learn the essentials of Cabal and Stack
Cabal Files Cabal is the industry-standard method of building nontrivial Haskell packages.
  • Build up minimal Cabal files from scratch
  • Add a library target to an existing cabal-based package
  • Add a test target to an existing .cabal-based package
Stack in Detail We’ll be using Stack for building our projects, and so we need to learn more about how to use the tool.
  • Review the Stack commands we've already used
  • Look at global and command-specific options
  • Look at some advanced commands
Stack Hints and Tips 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.
  • Look at how to structure .cabal projects
  • Look at how to rapidly prototype code
  • Look at how to perform test-driven development
Edit, Build, Execute, and Test Cycles 5 lectures 48:16 The Course Overview This video will an overview of entire course. Developing Haskell Programs Developing real Haskell programs requires a code editor that is up to the task, along with a build tool for managing dependencies.
  • Compare different Haskell editors and IDEs
  • Compare different build tools for Haskell code
  • Learn the essentials of Cabal and Stack
Cabal Files Cabal is the industry-standard method of building nontrivial Haskell packages.
  • Build up minimal Cabal files from scratch
  • Add a library target to an existing cabal-based package
  • Add a test target to an existing .cabal-based package
Stack in Detail We’ll be using Stack for building our projects, and so we need to learn more about how to use the tool.
  • Review the Stack commands we've already used
  • Look at global and command-specific options
  • Look at some advanced commands
Stack Hints and Tips 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.
  • Look at how to structure .cabal projects
  • Look at how to rapidly prototype code
  • Look at how to perform test-driven development
The Course Overview This video will an overview of entire course. The Course Overview This video will an overview of entire course. The Course Overview This video will an overview of entire course. The Course Overview This video will an overview of entire course. This video will an overview of entire course. This video will an overview of entire course. Developing Haskell Programs Developing real Haskell programs requires a code editor that is up to the task, along with a build tool for managing dependencies.
  • Compare different Haskell editors and IDEs
  • Compare different build tools for Haskell code
  • Learn the essentials of Cabal and Stack
Developing Haskell Programs Developing real Haskell programs requires a code editor that is up to the task, along with a build tool for managing dependencies.
  • Compare different Haskell editors and IDEs
  • Compare different build tools for Haskell code
  • Learn the essentials of Cabal and Stack
Developing Haskell Programs Developing real Haskell programs requires a code editor that is up to the task, along with a build tool for managing dependencies.
  • Compare different Haskell editors and IDEs
  • Compare different build tools for Haskell code
  • Learn the essentials of Cabal and Stack
Developing Haskell Programs Developing real Haskell programs requires a code editor that is up to the task, along with a build tool for managing dependencies.
  • Compare different Haskell editors and IDEs
  • Compare different build tools for Haskell code
  • Learn the essentials of Cabal and Stack
Developing real Haskell programs requires a code editor that is up to the task, along with a build tool for managing dependencies.
  • Compare different Haskell editors and IDEs
  • Compare different build tools for Haskell code
  • Learn the essentials of Cabal and Stack
Developing real Haskell programs requires a code editor that is up to the task, along with a build tool for managing dependencies.
  • Compare different Haskell editors and IDEs
  • Compare different build tools for Haskell code
  • Learn the essentials of Cabal and Stack
Cabal Files Cabal is the industry-standard method of building nontrivial Haskell packages.
  • Build up minimal Cabal files from scratch
  • Add a library target to an existing cabal-based package
  • Add a test target to an existing .cabal-based package
Cabal Files Cabal is the industry-standard method of building nontrivial Haskell packages.
  • Build up minimal Cabal files from scratch
  • Add a library target to an existing cabal-based package
  • Add a test target to an existing .cabal-based package
Cabal Files Cabal is the industry-standard method of building nontrivial Haskell packages.
  • Build up minimal Cabal files from scratch
  • Add a library target to an existing cabal-based package
  • Add a test target to an existing .cabal-based package
Cabal Files Cabal is the industry-standard method of building nontrivial Haskell packages.
  • Build up minimal Cabal files from scratch
  • Add a library target to an existing cabal-based package
  • Add a test target to an existing .cabal-based package
Cabal is the industry-standard method of building nontrivial Haskell packages.
  • Build up minimal Cabal files from scratch
  • Add a library target to an existing cabal-based package
  • Add a test target to an existing .cabal-based package
Cabal is the industry-standard method of building nontrivial Haskell packages.
  • Build up minimal Cabal files from scratch
  • Add a library target to an existing cabal-based package
  • Add a test target to an existing .cabal-based package
Stack in Detail We’ll be using Stack for building our projects, and so we need to learn more about how to use the tool.
  • Review the Stack commands we've already used
  • Look at global and command-specific options
  • Look at some advanced commands
Stack in Detail We’ll be using Stack for building our projects, and so we need to learn more about how to use the tool.
  • Review the Stack commands we've already used
  • Look at global and command-specific options
  • Look at some advanced commands
Stack in Detail We’ll be using Stack for building our projects, and so we need to learn more about how to use the tool.
  • Review the Stack commands we've already used
  • Look at global and command-specific options
  • Look at some advanced commands
Stack in Detail We’ll be using Stack for building our projects, and so we need to learn more about how to use the tool.
  • Review the Stack commands we've already used
  • Look at global and command-specific options
  • Look at some advanced commands
We’ll be using Stack for building our projects, and so we need to learn more about how to use the tool.
  • Review the Stack commands we've already used
  • Look at global and command-specific options
  • Look at some advanced commands
We’ll be using Stack for building our projects, and so we need to learn more about how to use the tool.
  • Review the Stack commands we've already used
  • Look at global and command-specific options
  • Look at some advanced commands
Stack Hints and Tips 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.
  • Look at how to structure .cabal projects
  • Look at how to rapidly prototype code
  • Look at how to perform test-driven development
Stack Hints and Tips 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.
  • Look at how to structure .cabal projects
  • Look at how to rapidly prototype code
  • Look at how to perform test-driven development
Stack Hints and Tips 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.
  • Look at how to structure .cabal projects
  • Look at how to rapidly prototype code
  • Look at how to perform test-driven development
Stack Hints and Tips 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.
  • Look at how to structure .cabal projects
  • Look at how to rapidly prototype code
  • Look at how to perform test-driven development
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.
  • Look at how to structure .cabal projects
  • Look at how to rapidly prototype code
  • Look at how to perform test-driven development
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.
  • Look at how to structure .cabal projects
  • Look at how to rapidly prototype code
  • Look at how to perform test-driven development
Modules Explained 3 lectures 47:46 Introduction to Modules 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.
  • First, learn about the purposes of modules in Haskell
  • Learn how modules and other things in Haskell are named
  • Look at the modules in an example program
Creating Modules 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.
  • Create exposed and other modules in our own program
  • Export different kinds of names from modules
  • Re-export names using module exports to create “umbrella” modules
Consuming 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.
  • First, learn how to hide names during imports from modules
  • Use qualified imports to disambiguate between identically named imports
  • Use multiple import strategies in the same scope
Modules Explained. 3 lectures 47:46 Introduction to Modules 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.
  • First, learn about the purposes of modules in Haskell
  • Learn how modules and other things in Haskell are named
  • Look at the modules in an example program
Creating Modules 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.
  • Create exposed and other modules in our own program
  • Export different kinds of names from modules
  • Re-export names using module exports to create “umbrella” modules
Consuming 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.
  • First, learn how to hide names during imports from modules
  • Use qualified imports to disambiguate between identically named imports
  • Use multiple import strategies in the same scope
Introduction to Modules 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.
  • First, learn about the purposes of modules in Haskell
  • Learn how modules and other things in Haskell are named
  • Look at the modules in an example program
Introduction to Modules 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.
  • First, learn about the purposes of modules in Haskell
  • Learn how modules and other things in Haskell are named
  • Look at the modules in an example program
Introduction to Modules 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.
  • First, learn about the purposes of modules in Haskell
  • Learn how modules and other things in Haskell are named
  • Look at the modules in an example program
Introduction to Modules 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 ackage, Stackage, and package metadata
  • Learn how to reference locally stored packages
  • Learn how to publish packages to Hackage
  • Searching Given the range of packages available in the ecosystem, ways to...

    Additional information

    Some comfort with introductory Haskell programming is expected

    Writing Haskell Programs

    £ 150 VAT inc.