The Haskell Programming Language

From Wikipedia:

Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing.

What does that mean?


The design of the Haskell language and core libraries are maintained by a committee that occasionally meets to produce a language specification. The specification is then used by language implementors to create tools such as compilers and interpreters, the most popular of which being the Glasgow Haskell Compiler.


Like most programming languages, Haskell is well suited for the majority of software development use cases.

Purely Functional

Haskell enforces an environment of pure computation forcing code that produces side effects to run in a dedicated compartment. This allows developers as well as the Haskell compiler to reason about how code in one part of the project affects the software as a whole.

Non-strict Semantics

Simply put, if a computation isn’t actually needed then the computer running your software won’t waste CPU cycles executing it.

Strong Static Typing

The type system in Haskell makes it possible to encode information about the problem domain in types, allowing the compiler to reject non-confirming code and prevent common bugs from reaching end users.

Want to Learn Haskell?

If you’re looking to learn Haskell on your own I recommend the following path:

  1. Learn You a Haskell (buy the book)
  2. Typeclassopedia (dig into Haskell type classes)
  3. Why Do Monads Matter? (great article)
  4. All About Monads (digs into each of the standard monads)
  5. IO Inside (understand IO and side effects)
  6. Review Real World Haskell (the online version)

Related Posts