Based on lambda calculus, Haskell is a purely functional programming language that features referential transparency, immutability and lazy evaluation. Concepts that will blow your mind — relearn programming while having an absolute blast. Reason about large pieces of code and compose them easily.

Haskell (/ ˈhæskəl / [25]) is a general-purpose, statically typed, purely functional programming language with type inference and lazy evaluation. [26][27] Haskell pioneered several programming language features including type classes for type-safe operator overloading and monadic input/output (IO). It is named after logician Haskell Curry. [1]

Looking to get started with Haskell? If so, check out the Get Started page! for Linux, macOS, FreeBSD, Windows or WSL2. The Haskell toolchain consists of the following tools: Alternatively, many operating systems provide GHC, cabal and Stack through their native package manager.

Most Haskell projects can be built using Cabal, but some might require Stack. Installing both guarantees that you can use either, and while following a tutorial or book you can use whatever they recommend.

Haskell is an advanced purely-functional programming language. An open-source product of more than twenty years of cutting-edge research, it allows rapid development of robust, concise, correct software.

If you are new to Haskell and are not sure where to start from, we recommend CIS194. CIS194 is the introductory Haskell course of the University of Pennsylvania; it is free, thorough, practical and will guide you from the basics to advanced features of the language.

Haskell is a modern, standard, non-strict, purely-functional programming language. It provides all the features sketched above, including polymorphic typing, lazy evaluation and higher-order functions.