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.
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.
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?
Devalot offers public Haskell workshops from time to time and is always available for corporate training engagements.
If you’re looking to learn Haskell on your own we recommend the following path:
- Learn You a Haskell (buy the book)
- Typeclassopedia (dig into Haskell type classes)
- Why Do Monads Matter? (great article)
- All About Monads (digs into each of the standard monads)
- IO Inside (understand IO and side effects)
- Review Real World Haskell (the online version)
Fixing programming by besting current languages — January 26, 2012
Jon BeltranDeHeredia suggests a way to write bug free code
Using Haskell to improve your C++ — February 6, 2012
Becoming a better imperative programmer by exploring functional programming
Parsing with Haskell and Attoparsec — June 26, 2013
Writing a parser in Haskell is fun and simple and this video tutorial walks you through using the Attoparsec library to parse internet playlist files.
Why the world needs Haskell — July 9, 2013
Software developers that care about writing quality software that is free of silly programmer mistakes need to learn about Haskell and functional programming.