Updated: 11/13/2018 by Computer Hope
Haskell is a programming language first introduced in 1990. It is a general-purpose language named after Haskell Curry, an American mathematician famous for his contributions to the field of combinatory logic.
- Lazy evaluation — Haskell only evaluates expressions when the value is actually needed for a calculation. It was one of the first languages to employ this type of evaluation strategy. Previous to Haskell, most programming languages used "eager evaluation" where an expression is evaluated as soon as it is bound to a variable. Lazy evaluation can offer better performance, and permits the definition of data structures that have no size limit.
- Pure functions — In Haskell, functions are "pure," meaning that the return value is always the same for a given input. Unlike functions in other programming languages, a Haskell function cannot cause side effects to variables outside its lexical scope. This restriction can simplify development, debugging, and refactoring of the code.
- Strong, static typing — Once a variable is declared as a certain data type in Haskell, it cannot be used as another. This limitation requires a more stringent programming style, but allows for performance benefits of the compiled code.
- Haskell 98, which was released in late 1997, included a special standard library for teaching purposes and a framework for future extensions.
- Haskell Prime, launched in 2006, is an ongoing, formal, open process for refining Haskell's language specification.
- Haskell 2010 added a feature known as the FFI (foreign function interface), which allowed Haskell programs to use the functionality of other programming languages.
Hello, World! in Haskell
module Main where main :: IO () main = putStrLn "Hello, World!"