Haskell is a purely functional programming language based entirely on mathematical and logical processes. Functional programming is a form of declarative programming, meaning that the program focuses on its nature and what it should accomplish rather than detailing and ordering how that should be done (as does imperative programming). Haskell’s purely functional nature provides developers with straightforward code that they can study to clearly understand the logic of the program, without wading through commands and lengthy sections of code.

Characteristics of Haskell and functional programming

Functional programming makes code easier to analyze; it’s logical, mathematical, and specific. Haskell is one of the primary examples of a purely functional language. It was named for Haskell Brooks Curry, a mathematician and logician whose work laid the foundation for functional programming languages to be developed. Haskell is popular among some businesses, like financial and technology, that require very specific, correct, and explicit mathematical processes.

Characteristics of Haskell (and purely functional programming in general) include:

Pure functions they are easier to analyze and test and are independent of outside events. Pure functions, in other words, return the same answer each time, without affecting other sections of the program.

No side effects because the functions return the same value each time they are called, they do not have side effects elsewhere in the program. A side effect often changes the state of the program itself, not just the local area in which it appears. Because the functions are pure, developers are able to avoid any side effects while working in Haskell.

Lazy evaluation the program will only evaluate a function when it absolutely must. It will not evaluate functions just because. This is more efficient.

Static typing the programmer must assign a data type to a variable while developing the program. Typically, the program will then assume that type for every following instance of the variable.

Jenna Phipps
Jenna Phipps is a contributor for websites such as Webopedia.com and Enterprise Storage Forum. She writes about information technology security, networking, and data storage. Jenna lives in Nashville, TN.

Top Articles

List of Windows Operating System Versions & History [In Order]

The Windows operating system (Windows OS) refers to a family of operating systems developed by Microsoft Corporation. We look at the history of Windows...

How to Create a Website Shortcut on Your Desktop

Website Shortcut on Your Desktop reviewed by Web Webster   This Webopedia guide will show you how to create a website shortcut on your desktop using...

What are the Five Generations of Computers? (1st to 5th)

Reviewed by Web Webster Learn about each of the 5 generations of computers and major technology developments that have led to the computing devices that...

Hotmail [Outlook] Email Accounts

Launched in 1996, Hotmail was one of the first public webmail services that could be accessed from any web browser. At its peak in...

Nimble CRM

Nimble CRM is a social CRM (customer relationship management) with sales and marketing...

What is Insightly CRM?

Insightly CRM is customer relationship management (CRM) software that focuses on an intuitive,...

Indicators of Compromise

When a system administrator finds anomalous or malicious behavior within network...