Haskell is a general purpose programming language. It is unique in being both very principled in its design (pure functions only, simple syntax, very expressive types), but also practical (heavily-engineered compiler that can generate fast code).
- Pros: highly modular code, low boilerplate, easy and safe refactoring
- Cons: no manual memory management, some gaps in ecosystem
Salient properties include:
- pure and immutable
- custom static types and automatically inferred type annotations
How to use this guide¶
If you're totally new to Haskell, we recommend reading through the tabs at the top of the page from the left to the right.
Feel free also to use this guide as a reference. For example, you can search the docs like so if you need a quick example of how to use a certain construction like
Ask questions about pages you don't understand via the
Comments section at the bottom of each page.
This documentation is a personal project, and not official Haskell documentation. Contributions are encouraged, by submitting a PR. See here for a style guide.
This guide is written for series 9 of the Glasgow Haskell Compiler (GHC). Almost all the content is applicable to older versions, but if in doubt, use GHC 9.2.5.
Created: January 7, 2023