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:
- Basics -- Printing output, variables and bindings, arithmetic, and strings.
- Functions -- Defining functions, if expressions, guards, and pattern matching.
- Lists -- Creating lists, ranges, map, filter, take, drop, zip, and list comprehensions.
- Functional Patterns -- Lambdas, folds, where/let bindings, and the Maybe type.
Let's get started.