Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • Build your AI Agent
    • GfG 160
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • Contests
    • Accenture Hackathon (Ending Soon!)
    • GfG Weekly [Rated Contest]
    • Job-A-Thon Hiring Challenge
    • All Contests and Events
  • DSA
  • Practice Problems
  • Python
  • C
  • C++
  • Java
  • Courses
  • Machine Learning
  • DevOps
  • Web Development
  • System Design
  • Aptitude
  • Projects
Open In App
Next Article:
Bhailang - A Toy Programming Language
Next article icon

What is Haskell Programming Language?

Last Updated : 02 Mar, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

During the late 1980s as that is, the era of new languages and paradigms were invented. A group of researchers started developing Haskell a purely functional programming language. It was finally published in 1990. It is named based on a U.S. mathematician Haskell Brooks Curry.

Haskell is a modern, standard, purely functional programming and non-strict language. It is Specially designed to handle a wide range of applications, from numerical through to symbolic. It has an expressive syntax and very rich inbuilt architecture.

Haskell is a purely Functional, non-strict Programming Language. It is Specially designed to cope with large-scale industrial production applications. It is known for its rich built architecture. Haskell programs are written as Mathematical functions. 

Features of Haskell:

  • Ease of understanding: Functional programs are easier to understand. There are not imperative or procedural. Functional programs are generally easy to understand but their implementation is difficult.
  • code reuse: Haskell supports polymorphism. For example, the code above not only supports integers but also floating-point numbers, list of characters, List of lists, etc
  • Memory Management: In Language like c, memory Management is done by using the Keyword malloc or calloc, The programmer needs to free the memory after using it. But in functional programming like Haskell programmer is relieved from this burden. Storage is allocated, initialized implicitly, and recovered automatically by the garbage collector.
  • Statically-typed: A statically-typed language is a language where variable types are known at compile time. It helps programmers in identifying errors in compile time. It helps to decrease the complexity of large-scale programs.
  • Purely functional: It is a style of building a program that treats all the computations as mathematical functions.
  • Lazy evaluation: Functional programming like Haskell skips the evaluation of arguments in functions. This increases the performance of the code helping programs compose very well.
  • Type inference: Type inference solves the redundancy of code that explicitly be written to every type of program.
  • Multithreading: Threads are virtual processors handling/processing steps in a program. A Language with a Single thread means at a time only one execution takes place. Haskell is a Multi-threaded language that gives it the ability to do parallel execution of statements in the program. Multi-threading increases the processing power of a programming language’s execution.

Why use Haskell?

Haskell provides various characteristics like:

  • Higher programmer productivity
  • Shorter, cleaner and maintainable code.
  • Higher reliability.
  • Higher Compiling power.

Most of large software products life is spent in design and maintenance as functional programming languages are easier to maintain.

How to run Haskell code?

The Glasgow Haskell Compiler (GHC) is used for running the Haskell code. Its features are:

  • It provides a cross-platform environment.
  • supports numerous extensions, libraries, and optimizations that help the process of generating and executing code.
// Haskell program for print a message  main :: IO ()                     main = putStrLn "Hello! Welcome to GeeksforGeeks"

Output:

Functional programming is based on mathematical functions. Some other programming languages that support functional programming paradigm are:  

  • Python
  • Lisp
  • Erlang
  • Racket
  • Closure etc


Next Article
Bhailang - A Toy Programming Language

P

pcssai
Improve
Article Tags :
  • Programming Language
  • Haskell

Similar Reads

  • Which Programming Language to Choose?
    One of the most annoying question today is which programming language should be chosen for the sake of education/career or anything. Answer for this question to many programmers ends up with C or C++, or mostly Java but why C? why C++? Why Java?. Today many software exists, to solve a problem but al
    4 min read
  • Swift Programming Language
    Swift is a general-purpose, multi-paradigm, object-oriented, functional, imperative, and block-structured language. Swift is the result of the latest research on programming languages and is built using a modern approach to safety, and software design patterns by Apple Inc. for iOS applications, mac
    4 min read
  • Bhailang - A Toy Programming Language
    Coding involves a wide array of programming languages. A beginner might find the syntax intimidating. What about if there was a Hindi linguistic version of coding? After all these programming languages such as C, C++, and Python, here we have Bhailang, created by our own Indian engineers spawned out
    3 min read
  • The Evolution of Programming Languages
    Programming Language is indeed the fundamental unit of today's tech world. It is considered as the set of commands and instructions that we give to the machines to perform a particular task. For example, if you give some set of instructions to add two numbers then the machine will do it for you and
    4 min read
  • Ruby Programming Language
    Ruby is a dynamic, reflective, object-oriented, general-purpose programming language. Ruby is a pure Object-Oriented language developed by Yukihiro Matsumoto. Everything in Ruby is an object except the blocks but there are replacements too for it i.e procs and lambda. The objective of Ruby’s develop
    2 min read
  • Lisp vs Erlang Programming Language
    Lisp is the High-Level Programming Language invented by John McCarthy in 1958 at the Massachusetts Institute of Technology (MIT). Lisp is the second-oldest high-level programming language in widespread use today. The name Lisp is derived from ‘List Processing Language’. Lisp programs deal with sourc
    2 min read
  • Introduction to Programming Languages
    Introduction: A programming language is a set of instructions and syntax used to create software programs. Some of the key features of programming languages include: Syntax: The specific rules and structure used to write code in a programming language.Data Types: The type of values that can be store
    13 min read
  • Perl Programming Language
    Perl is a general purpose, high level interpreted and dynamic programming language. Perl supports both the procedural and Object-Oriented programming. Perl is a lot similar to C syntactically and is easy for the users who have knowledge of C, C++. Since Perl is a lot similar to other widely used lan
    3 min read
  • Learn Free Programming Languages
    In this rapidly growing world, programming languages are also rapidly expanding, and it is very hard to determine the exact number of programming languages. Programming languages are an essential part of software development because they create a communication bridge between humans and computers. No
    9 min read
  • R Programming Language - Introduction
    R was created for statistical analysis and data visualization. It started in the early 1990s when researchers needed a tool that could handle large datasets, run complex computations and display results clearly in graphs and charts. R provides a user-friendly environment and when used with tools lik
    5 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences