What lives here

Fifty short lessons, one unbroken chain: every page ends with a link to the next one, so you can read the course start to finish without ever wondering where to click. Each lesson teaches one idea with short examples, from the first script to a working command line tool:

  1. Start here: What is Haskell and why it matters — then follow the chain through lesson 50.
  2. Language core, lessons 2-19: install, GHCi, first program, let and where, types, functions, currying, operators, guards, case, pattern matching, tuples, lists, ranges, comprehensions, recursion, higher order functions, lambdas.
  3. Types and abstractions, lessons 20-32: type classes, polymorphism, Maybe, Either, data types, records, newtype, trees, Functor, Applicative, Monad, do notation.
  4. Real programs, lessons 33-48: IO, files, modules, Cabal, dependencies, HUnit, QuickCheck, laziness, strictness, folds, monoids, Traversable, transformers, errors, concurrency, parsing.
  5. Finish, lessons 49-50: the todo CLI capstone and the hero roadmap with every lesson on one page.

How to use this course

Type every example, do not just read it. Load each snippet into GHCi before moving on, because the error messages are the fastest way to learn what the type checker wants.

Two rules carry the whole course: write the signature first, and let the compiler drive. When a definition refuses to typecheck, the message names the exact expression that disagrees.

Search this site

Channel @aofeed Chat @aofeedchat

Contacts and cooperation:
I recommend our hosting beget.com
Write to info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: