PLDB
Languages Features Calendar CSV Lists Blog About Sponsor Add Language
GitHub icon

Haskell

Haskell

Haskell is a pl created in 1990 by Paul Hudak and John Hughes.

#24on PLDB 32Years Old 37.6kUsers
70Books 34Papers 127kRepos

Try now: Riju · TIO · Replit

Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. The latest standard of Haskell is Haskell 2010. Read more on Wikipedia...


Example from Compiler Explorer:
module Example where sumOverArray :: [Int] -> Int sumOverArray (x:xs) = x + sumOverArray xs sumOverArray [] = 0
Example from Riju:
module Main where main :: IO () main = putStrLn "Hello, world!"
Example from hello-world:
module Main where main = putStrLn "Hello World"
Example from the Hello World Collection:
-- Hello World in Haskell main = putStrLn "Hello World"
Example from Linguist:
import Data.Char main :: IO () main = do let hello = "hello world" putStrLn $ map toUpper hello
Example from Wikipedia:
$ ghci Prelude> import Data.Int Prelude Data.Int> fromIntegral (32767 :: Int16) :: Int8 -1 Prelude Data.Int> fromInteger (2^64 :: Integer) :: Int32 0

Keywords in Haskell

! ' '' - -< -<< -> :: ; <- , = => > ? # \* @ [|, |] \ \_ ` {, } {-, -} | ~ as case of class data family instance default deriving do forall foreign hiding if then else import infix infixl infixr let in mdo module newtype proc qualified rec type where

Language features

Feature Supported Example Token
Binary Literals
-- 0[bB]_*[01](_*[01])*
Integers
-- \d(_*\d)*
Floats
-- 0[xX]_*[\da-fA-F](_*[\da-fA-F])*_*[pP][+-]?\d(_*\d)*
Hexadecimals
-- 0[xX]_*[\da-fA-F](_*[\da-fA-F])*
Octals
-- 0[oO]_*[0-7](_*[0-7])*
Conditionals
Classes
Case Sensitivity
Print() Debugging putStrLn
Range Operator
Function Composition
foo = f . g
Line Comments
-- A comment
--
Semantic Indentation
Operator Overloading
File Imports
import Data.Maybe
import Mod as Foo
import Mod (x,y, (+++))
import qualified Mod
import Mod hiding (x,y,(+++))
import qualified Mod hiding (x,y)
Directives
{-# INLINE foo #-}
Garbage Collection
Pattern Matching
fib 0 = 1
fib 1 = 1
fib n | n >= 2
      = fib (n-1) + fib (n-2)
Zippers
-- https://wiki.haskell.org/Zipper_monad/TravelTree
MultiLine Comments {- -}
Comments
 -- a single line comment
 {- A multiline comment
    which can continue for many lines
 -}
Map Functions
class Functor f where
   fmap :: (a -> b) -> f a -> f b
   (<$) :: a -> f b -> f a
Monad
-- https://stackoverflow.com/questions/44965/what-is-a-monad
parseExpr = parseString <|> parseNumber

parseString = do
        char '"'
        x <- many (noneOf "\"")
        char '"'
        return (StringValue x)

parseNumber = do
    num <- many1 digit
    return (NumberValue (read num))
Typed Holes
-- Found hole `_' with type f (Free f b)
Runtime Guards
f x
 | x > 0 = 1
 | otherwise = 0
Strings
"hello world"
"

Books about Haskell on goodreads

title author year reviews ratings rating
Programming in Haskell Graham Hutton 2006 28 306 3.98
Haskell Programming From First Principles Christopher Allen 2015 22 130 4.55
Haskell: The Craft of Functional Programming Simon Thompson 1996 8 159 3.53
The Haskell Road to Logic, Maths and Programming Kees Doets 2004 5 110 3.67

Books about Haskell from ISBNdb

title authors year publisher
Programming in Haskell Hutton, Graham 2016 Cambridge University Press
Real World Haskell Bryan O'Sullivan and John Goerzen and Don Stewart 2008 O'Reilly Media
Learn You a Haskell for Great Good!: A Beginner's Guide Lipovaca, Miran 2011 No Starch Press
Introduction to Functional Programming Systems Using Haskell (Cambridge Computer Science Texts, Series Number 27) Davie, Antony J. T. 1992 Cambridge University Press
Haskell Data Analysis Cookbook Shukla, Nishant 2014 Packt Publishing
The Haskell School of Expression: Learning Functional Programming through Multimedia Paul Hudak 2000 Cambridge University Press
Haskell Workshop Acm Sigplan 2002 Association for Computing Machinery (ACM) Staff and ACM SIGPLAN Haskell Workshop 2002 Assn for Computing Machinery
The Haskell Road to Logic, Maths and Programming. Second Edition (Texts in Computing) Kees Doets and Jan van Eijck 2004 College Publications
Developing Web Apps with Haskell and Yesod: Safety-Driven Web Development Snoyman, Michael 2015 O'Reilly Media
Haskell Design Patterns Ryan Lemmer 42314 Packt Publishing
Algorithm Design with Haskell Bird, Richard and Gibbons, Jeremy 2020 Cambridge University Press
Get Programming with Haskell Kurt, Will 2018 Manning Publications
Learn You a Haskell for Great Good!: A Beginner's Guide Lipovaca, Miran 2011 No Starch Press
Thinking Functionally with Haskell Bird, Richard 2014 Cambridge University Press
Programming in Haskell Graham Hutton 2007 Cambridge University Press
Haskell Data Analysis Cookbook Shukla, Nishant 2014 Packt Publishing
Haskell High Performance Programming Thomasson, Samuli 2016 Packt Publishing
Haskell Cookbook: Build functional applications using Monads, Applicatives, and Functors Sajanikar, Yogesh 2017 Packt Publishing
Introduction to Functional Programming using Haskell (2nd Edition) Bird, Richard 1998-05-09T00:00:01Z Prentice Hall
Haskell Design Patterns: Take your Haskell and functional programming skills to the next level by exploring new idioms and design patterns Lemmer, Ryan 2015 Packt Publishing
Developing Web Applications with Haskell and Yesod Snoyman, Michael 2012 O'Reilly Media
Haskell Financial Data Modeling and Predictive Analytics Ryzhov, Pavel 2013 Packt Publishing
Programming in Haskell Graham Hutton 2007-01-15T00:00:01Z Cambridge University Press
The Haskell School of Expression: Learning Functional Programming through Multimedia Hudak, Paul 2000 Cambridge University Press
The Haskell Road to Logic, Maths and Programming. Second edition Doets, Kees and Eijck, van Jan 2004 College Publications
Programming in Haskell Graham Hutton 20160901 Cambridge University Press
Parallel and Concurrent Programming in Haskell Shroff Publishers & Distributors Pvt Ltd
Haskell 98 Language and Libraries: The Revised Report Simon L. Peyton Jones 2003 Cambridge University Press
Highlights of cutting-edge programming languages: Haskell Fun Learning Guide(Chinese Edition) [ SI LUO WEN NI YA ] Miran Lipovaca 2014 People Post Press
Haskell Ernst-Erich Doberkat 20121018 De Gruyter
Haskell '06 Acm Sigplan Haskell Workshop (10th : 2006 : Portland, Oregon) and Acm Special Interest Group On Programming Languages 2006 Association For Computing Machinery
Programming In Haskell Professor Graham Hutton 2012 Cambridge University Press
Programming in Haskell Graham Hutton 20070115 Cambridge University Press
Real World Haskell Bryan O'Sullivan 20081115 O'Reilly Media, Inc.
Real World Haskell Bryan O'Sullivan; John Goerzen; Donald Bruce Stewart 20081115 O'Reilly Media, Inc.
Programming in Haskell Graham Hutton 20070115 Cambridge University Press
Haskell (programming Language) Miller and Frederic P. and Vandome and Agnes F. and McBrewster and John
Programming In Haskell Graham Hutton
Haskell in Depth Vitaly Bragilevsky 20210713 Simon & Schuster
Haskell pdf Ebook Simon Thompson 20150925 Pearson International Content
Haskell School Of Music Paul Hudak and Donya Quick 2018 Cambridge University Press
Haskell Quick Syntax Reference Stefania Loredana Nita; Marius Mihailescu 20190610 Springer Nature
Functional Programming With Haskell Michael G. Hinchey and Steven A. Jarvis 2000 Mcgraw-hill Osborne Media
Get Programming with Haskell Will Kurt 20180306 Simon & Schuster
Algorithm Design with Haskell Richard Bird; Jeremy Gibbons 20200709 Cambridge University Press
Haskell High Performance Programming Samuli Thomasson 26-09-2016 Packt Publishing
Learning Haskell Data Analysis James Church 2015-05-28 Packt Publishing
Thinking Functionally with Haskell Richard Bird 20141009 Cambridge University Press
Haskell '05: proceedings of the ACM SIGPLAN 2005 Haskell Workshop : September 30, 2005, Tallinn, Estonia Acm Sigplan Haskell Workshop (2005 : Tallinn, Estonia) 2005 Acm Press
Haskell Programming From First Principles Christopher Allen and Julie Moronuki 2016
The Haskell School of Expression Paul Hudak 20000228 Cambridge University Press
The Haskell School of Expression Paul Hudak 20000228 Cambridge University Press
Haskell '05: proceedings of the ACM SIGPLAN 2005 Haskell Workshop : September 30, 2005, Tallinn, Estonia Acm Sigplan Haskell Workshop (2005 : Tallinn, Estonia) 2005 Acm Press
The Haskell School of Music Paul Hudak; Donya Quick 20181004 Cambridge University Press
Parallel and Concurrent Programming in Haskell Simon Marlow 20130712 O'Reilly Media, Inc.
Introduction to Functional Programming, Haskell 1.3 Richard Bird
Parallel and Concurrent Programming in Haskell Simon Marlow 20130712 O'Reilly Media, Inc.
Haskell '07: Proceedings Of The Acm Sigplan 2007 Haskell Workshop : Freiburg, Germany, September 30, 2007 ACM Special Interest Group on Programming Languages 2007 Association For Computing Machinery
Getting Started with Haskell Data Analysis James Church 31-10-2018 Packt Publishing
Articles On Haskell Programming Language Family, Including Hephaestus Books 2011
Haskell Financial Data Modeling and Predictive Analytics Pavel Ryzhov 2013-10-25 Packt Publishing
Haskell '04: Proceedings Of The Acm Sigplan 2004 Haskell Workshop September 22-22, 2004, Snowbird, Utah, Usa Association for Computing Machinery and ACM Special Interest Group on Programming Languages 2004 Association For Computing Machinery
Developing Web Apps with Haskell and Yesod Michael Snoyman 20150217 O'Reilly Media, Inc.
Developing Web Apps with Haskell and Yesod Michael Snoyman 20150217 O'Reilly Media, Inc.
Introduction To Functional Programming Systems Using Haskell (cambridge Computer Science Texts) Antony J. T. Davie 1992 Cambridge University Press
JAVA BY DISSECTION The Essentials of Java Programming - Javaplace Edition with Haskell - The Craft of Functional Programming Pohl and Ira

Publications about Haskell from Semantic Scholar

title authors year citations influentialCitations
Template meta-programming for Haskell T. Sheard and S. Jones 2002 527 62
Accelerating Haskell array codes with multicore GPUs M. Chakravarty and G. Keller and Sean Lee and T. L. McDonell and Vinod Grover 2011 254 33
The Haskell School of Expression: Learning Functional Programming through Multimedia P. Hudak 1999 199 16
Comparing libraries for generic programming in haskell A. R. Yakushev and J. Jeuring and Patrik Jansson and Alex Gerdes and O. Kiselyov and B. C. Oliveira 2008 84 4
Ask-Elle: an Adaptable Programming Tutor for Haskell Giving Automated Feedback Alex Gerdes and B. Heeren and J. Jeuring and L. T. V. Binsbergen 2017 70 9
Hasochism: the pleasure and pain of dependently typed haskell programming S. Lindley and Conor McBride 2013 54 3
FranTk - a declarative GUI language for Haskell M. Sage 2000 50 3
Attribute grammars fly first-class: how to do aspect oriented programming in Haskell Marcos Viera and S. Swierstra and W. Swierstra 2009 50 3
Polytypic Programming in Haskell U. Norell and Patrik Jansson 2003 36 7
A typechecker plugin for units of measure: domain-specific constraint solving in GHC Haskell Adam Gundry 2015 29 1
Distributed Programming in Haskell with Ports F. Huch and U. Norbisrath 2000 25 3
Promoting functions to type families in Haskell R. Eisenberg and Jan Stolarek 2014 25 1
Eden - Parallel Functional Programming with Haskell R. Loogen 2011 24 4
An EDSL approach to high performance Haskell programming J. Ankner and Josef Svenningsson 2013 22 3
Session Types with Linearity in Haskell Dominic A. Orchard and N. Yoshida 2017 21 1
Haskell clone detection using pattern comparing algorithm Sergej Chodarev and E. Pietriková and J. Kollár 2015 15 0
Generic programming with C++ concepts and Haskell type classes—a comparison Jean-Philippe Bernardy and Patrik Jansson and Marcin Zalewski and S. Schupp 2010 13 0
Understanding beginners' mistakes with Haskell V. Tirronen and Samuel Uusi-Mäkelä and Ville Isomöttönen 2015 12 1
Haskell vs. f# vs. scala: a high-level language features and parallelism support comparison Prabhat Totoo and Pantazis Deligiannis and Hans-Wolfgang Loidl 2012 8 1
Composable scheduler activations for Haskell K. Sivaramakrishnan and T. Harris and S. Marlow and S. Jones 2016 7 0
Deterministic Parallel Programming with Haskell Duncan Coutts and Andres Löh 2012 7 0
Polymonad programming in Haskell J. Bracker and H. Nilsson 2015 7 2
Programming Reactive Systems in Haskell Sigbjørn Finne and S. Jones 1994 6 1
Hardware software co-design in Haskell M. Aronsson and M. Sheeran 2017 6 0
Parallel programming in Haskell almost for free: an embedding of intel's array building blocks Bo Joel Svensson and M. Sheeran 2012 6 0
Algorithm Design with Haskell R. Bird and J. Gibbons 2020 6 1
TIP in Haskell - another Exercise in Functional Programming C. Runciman 1991 5 0
GenI: natural language generation in Haskell Eric Kow 2006 5 1
Functional programming languages for verification tools: a comparison of Standard ML and Haskell M. Leucker and T. Noll and P. Stevens and Michael Weber 2005 4 0
High-performance client-side web applications through Haskell EDSLs A. Ekblad 2016 3 0
A Library for Processing Ad hoc Data in Haskell - Embedding a Data Description Language Yan Wang and Verónica Gaspes 2008 3 0
A Purely Functional Computer Algebra System Embedded in Haskell Hiromi Ishii 2018 3 0
Learn Physics by Programming in Haskell S. Walck 2014 3 0
Towards secure IoT programming in Haskell Nachiappan Valliappan and Robert Krook and Alejandro Russo and K. Claessen 2020 2 0
rust.html · haskell.html · postgresql.html

View source

PLDB - Build the next great programming language · v2022 · Day 31 · Docs · Build · Acknowledgements · Traffic Today · Traffic Trends · Mirrors · GitHub · feedback@pldb.com