Introduction

Why Haskell?

Haskell is a purely functional, statically typed programming language with lazy evaluation. Learning Haskell changes how you think about programming — even if you never write it professionally.

  • Pure functions -- No hidden state, no side effects. Every function takes inputs and returns outputs. The same input always produces the same output.
  • Strong type system -- Haskell's types catch entire classes of bugs at compile time. The famous saying: "If it compiles, it often works."
  • Pattern matching -- Destructure data with elegance. Define functions by cases, matching on shape and value simultaneously.
  • Lazy evaluation -- Haskell only computes values when needed. You can define infinite lists and only use the parts you want.
  • Conciseness -- Haskell programs are often a fraction of the length of equivalent imperative code.

The Story

Haskell was born in 1987 when a committee of researchers decided that the proliferation of lazy functional languages needed a single, open standard. Named after the logician Haskell Curry, version 1.0 was released in 1990. GHC (Glasgow Haskell Compiler) is the de-facto standard implementation.

What You Will Learn

This course contains 15 lessons organized into 4 chapters:

  1. Basics -- Printing output, variables and bindings, arithmetic, and strings.
  2. Functions -- Defining functions, if expressions, guards, and pattern matching.
  3. Lists -- Creating lists, ranges, map, filter, take, drop, zip, and list comprehensions.
  4. Functional Patterns -- Lambdas, folds, where/let bindings, and the Maybe type.

Let's get started.

Next →