Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Learning Path: Haskell: Functional Programming and Haskell
Rating: 4.0 out of 5(658 ratings)
5,332 students

Learning Path: Haskell: Functional Programming and Haskell

Gain expertise of programming in Haskell — an advanced, purely functional programming language.
Last updated 4/2017
English

What you'll learn

  • Discover how functional programming addresses complexity
  • See a comparison of functional programs with traditional imperative programs
  • Learn the basics of Haskell datatypes and functions
  • Write and deploy a simple web application
  • Structure larger Haskell programs
  • See how to model your problem domain with precise types and how to reap the benefits of doing so

Course content

3 sections73 lectures13h 13m total length
  • The Course Overview4:09

    This video provides an overview of the entire course.

  • Installing Stack on Windows7:43

    This video takes the user through the steps required to install the Haskell Stack build tool on Windows using Windows 10 Pro as an example.

  • Installing Stack on Mac OS6:33

    This video takes the user through the steps required to install the Haskell Stack build tool on Mac OS using Mac OS X 10.10.5 Yosemite as an example.

  • Installing Stack on Linux5:24

    This video takes the user through the steps required to install the Haskell Stack build tool on Linux using Ubuntu 12.04.5 LTS as an example.

  • Problems FP and Haskell Can Address6:30

    This video will develop motivation for learning a new approach to software development and a new and decidedly different programming language.

  • The FP Way10:54

    This video will outline the approach to managing complexity that functional programming FP encourages.

  • The Haskell Way9:07

    This video will talk about what Haskell has in common with other functional programming languages as well as the ways in which it is different.

  • Our First Haskell Programs15:42

    This video will demonstrate some more realistic programs, incrementally built up from simpler programs. It will run them in GHC’s interpreted mode. We will see more Haskell syntax encounter more functions from Haskell’s standard prelude.

  • Whitespace, Layout, and Scoping8:38

    Haskell is a whitespace-sensitive programming language. It’s worth gaining some comfort with the indentation rules, even though they correspond—for the most part—to the “obvious” way to lay a program out. We’ll relate layout to lexical scoping of names.

  • GHCi and Interactive Haskell8:55

    Explore how to use GHCi for interactive Haskell by running commands, loading files, inspecting types and modules, and evaluating expressions with various colon commands.

  • Debugging with GHCi11:29

    Haskell employs a non-strict evaluation strategy which can be strange for newcomers to the language. Furthermore, we will inevitably write buggy code. GHCi has useful debugging capabilities that can allow to address both of these concerns.

  • Values and Expressions24:39

    We will drill deeper into values, function application and composition, and the various ways to declare functions.

  • Types and Type Signatures18:42

    So far, we have only skimmed over types and type signatures. You need to know enough to be able to read function declarations and build our own functions and values.

  • Algebraic Data Types11:46

    We’ve looked at built-in types and values and functions that use them; you need to learn how to define our own composite data types. This will use Haskell’s support for user-defined algebraic data types.

  • Type Classes16:56

    Haskell’s primary mechanism for implementing abstract data types is the type class. We need to know about some of the common built-in type classes as well as how to implement our own type classes and type class instances.

  • Pattern Matching12:28

    You learn all about declaring our own ADTs and creating values for them. Before we can really consume ADTs, you need to know how to extract values from them using pattern matching.

Requirements

  • A computer
  • Internet connection
  • Basic understanding or procedural or object oriented programming
  • You need not have any software installed prior to taking up this course. The course will take you through the installation procedure of all the software needed.

Description

What makes functional programming great?

Let’s dive into this course and figure out the reason for the buzz around functional programming.

In this Video Learning Path, we study a purely functional programming language— Haskell—and discover its capabilities.

Packt’s Video Learning Paths are a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it.

Haskell is a powerful and well-designed functional programming language designed to work with complex data. Its emphasis on purity makes it easier to create rock-solid applications that stay maintainable and error-free even as they grow in scale.

In this Learning Path, you will start with learning the fundamentals and building blocks of Haskell programming language with special emphasis on functional programming.

You will learn how to solve programming problems and gain hands-on experience of creating an application. You will then move on to learn how to write expressions and high-order functions. We will then go on to discuss two other structured forms of interaction: streaming libraries and functional reactive programming.

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.

To ensure that you get the best of the learning experience, in this Learning Path we combine the works of some of the leading authors in the business.

About the Author

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

Hakim Cassimally learned the basics of Lisp 15 years ago and has been interested in functional programming ever since. After Audrey Tang developed the first prototype of Perl6 in Haskell (Pugs), he got seriously interested in Haskell and has written, spoken, and evangelised about learning and writing Haskell since 2006.

Samuel Gélineau is a Haskell developer with more than 10 years of experience in Haskell Programming. He has been blogging about Haskell for about the same time. He has given many talks at Montreal’s Haskell Meetup, and is now co-organizer.

Samuel is a big fan of functional programming, and spends an enormous amount of time answering Haskell questions on the Haskell subreddit, and as a result has a good idea of the kind of questions people have about Haskell, and has learned how to answer those questions clearly, even when the details are complicated. 

Who this course is for:

  • This course is ideal for anyone with a little experience in imperative or object-oriented programming language and wants to learn about functional programming or Haskell.