Haskell is a programming language created in 1990 by Paul Hudak and John Hughes.
#31on PLDB | 33Years 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...
module Example where
sumOverArray :: [Int] -> Int
sumOverArray (x:xs) = x + sumOverArray xs
sumOverArray [] = 0
module Main where
main :: IO ()
main = putStrLn "Hello, world!"
module Main where
main = putStrLn "Hello World"
-- Hello World in Haskell
main = putStrLn "Hello World"
import Data.Char
main :: IO ()
main = do
let hello = "hello world"
putStrLn $ map toUpper hello
$ ghci
Prelude> import Data.Int
Prelude Data.Int> fromIntegral (32767 :: Int16) :: Int8
-1
Prelude Data.Int> fromInteger (2^64 :: Integer) :: Int32
0
! ' '' - -< -<< -> :: ; <- , = => > ? # \* @ [|, |] \ \_ ` {, } {-, -} | ~ 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
Feature | Supported | Token | Example |
---|---|---|---|
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 |
Type Inference | ✓ | ||
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" |
Case Insensitive Identifiers | X |
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 |
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 |