Haskell is standardized functional programming language. It uses the principal of lazy evaluation and its name is in honour of the logic Haskell Curry. It evolves very fast and especially because of the Hugs and GHC implementations.
It is a language, that complies with the reference transparency. The same expression or subexpression has on any place in the program the same value.
Another feature of the language is a strict typing of variables. That can simplify detection of the errors in program for programmers. Haskell also fully supports the work with files even with standard inputs and outputs.
The history of the language goes to the end of the 80’s in 20th century. It was designed by a team of scientists, who tried to create an open standard of functional programming language with modern features. In 90’s it was still being developed especially in academic sphere. Later, it became known even outside of the science community and that partly because of the online community. As the last stable version figures the Haskell 98 revision, which defines minimal and transferable language standard. It is usable in teaching and it is also a base of other expansions.
Haskell is purely functional programming language. It has a long history and programs in Haskell are a series of high-level generalizable functions, which define, what should the program do. The language hides the low-level operational matters, as e. g. iterations.
It has strong safety of types. The inference system produces code with minimal amount of the side effects. Programmer focuses on the results more than on the formulation of long series of steps.
Compiler produces clean, brief and correct code, therefore if the code is compiled, almost every time it means, that it is functional. That is a huge contrast to e. g. Ruby, where the testing code can take up to double or triple the size of an app and so there is no guarantee of the code being alright.
Strengths of the language shows especially in complex and unique analysis, but the main difference can be seen even at the short scraps of code. E. g. in comparison to Java, it is simpler to understand the meaning of the code at the first sight.
Haskell is very suitable for algorithm apps and problems, which require parallel solution. It is often used in data-intensive areas, as are the financial services, big data apps, pharmaceutical industry, biotechnology, oil industry or consumer data.