Haskell

Haskell is a functional programming language which is pure and statically-typed. It's known for lazy evaluation, where evaluation is deferred until necessary, and its purity, where monads are used for working with side-effects.

About Haskell

Haskell is a general-purpose programming language known for being purely functional, non-strict with strong static typing and for having type inference.

Purely functional means that you don't update variables or modify state.
Pure functions will always return the same value given the same input and will do nothing else.
Functions that are referentially transparent are more predictable and more composable.
Non-strict (somewhat like lazy) means that you can express infinite data structures.
Strong static typing means that a lot of program errors are caught during compilation.
Type inference means that the compiler can often figure out the type of a value by itself.
The compiler can also tell you if a value has conflicting types in different parts of the code.

There are more than 10,000 free third-party packages available at Hackage, the Haskell community's central package archive,
and you can download them using the Stack tool that Exercism also uses.

I like Haskell very much. Although I'm not that good at it, I hope everyone will fall in love with her. I will do my best to help everyone. Besides, I come from China, so if you use Chinese, I can also understand it.

Professionaly I do embedded programming in a mixture of C and Rust code. Coding in Clojure and 10+ years Java before. I couldn't apply Haskell directly at work so far, but feel how it influenced my way of programming in other languages as well.

Meet the Haskell Track maintainers

The Haskell Maintainers are the brains behind the Haskell Track. They spend their spare time creating interesting and challenging exercises that we can all learn from. We are incredibly grateful for their hard work. Here are the bios of a few of the maintainers of this track.

Peter Tseng

I taught myself Haskell as a logical next step after having learned OCaml. Although I don't use it for my job, I find it an interesting language; I especially enjoy its type system. I'm mostly a "break glass in case of emergency" maintainer.

I've been a classroom teacher in compilers and various functional languages for five years. Having pure functions and isolation of side-effects are fundamental to separation of concerns. Strong, static types, type inference and algebraic types are hard for me to live without.

Get started with the Haskell track. As with everything on Exercism, it's 100% free!