From EDM2
Jump to: navigation, search

Strongly typed, lazy functional programming language. Generated a lot of interest during the 1990's and is still one of the more popular functional languages out there but was greatly hampered at the time by the complete incompatibility of different tools available, and lack of standards and standard adherence in general.

While things have gotten a lot better in the last couple of decades, there is still some distance between the standards and the available tools, the Haskell 98 specification and later for instance state that Haskell supports Unicode but actually none of the implementations do so except via kludgy workarounds.

The language was originally designed by a committee in 1987 to 89, with version one of the Haskell specification being released in 89, originally it was intended to be a variant of David Turner’s Miranda but Turner refused permission for this as he was afraid of incompatible variants of the language existing in the wild the Haskell committee ended up deliberately making the language incompatible with Miranda, however the two languages are still structurally very similar.

Haskell has grown a few dialects of it own including Mondrian that simplifies the Haskell structures.

OS/2 implementations

  • Gofer - aka HUGS - Open source - Discontinued
  • NHC - Open source - Discontinued

Foreign libraries with Haskell bindings

  • Cairo - 2D graphics library - Open source - Current
  • LibcURL - Internet URL (WWW, FTP, etc) access - Open Source - Current
  • LZ4 - Compression library - Open source - Current
  • Snappy - Compression library - Open Source - Current

Text editors with Haskell support

  • jEdit - Java based - Haskell syntax highlighting built in - Current

DOS implementations

  • Gofer - Open source - Discontinued


  • Haskell 98 Standard
  • P. Hudak, S.L. Peyton Jones & P.L. Wadler (eds.) et al: Report on the Functional Programming Language Haskell: A Non-strict, Purely Functional Language, Version 1.2 - 1992 - ACM SIGPLAN Notices, 27(5) (March 1992)
  • Hal Daumé III: Yet Another Haskell Tutorial - 2006 PDF
  • Thomas Hallgren: A Lexer for Haskell in Haskell (first draft) - 2003 PDF
  • Daniel Johannes Pieter Leijen: The λ Abroad: A Functional Approach To Software Components - 2003 PDF
  • Conor McBride & Ross Paterson: Functional Pearl - Applicative programming with effects - 2008 PDF
  • Christopher Brown and Simon Thompson: Clone Detection and Elimination for Haskell - PDF
  • Georgios Fourtounis, Nikolaos Papaspyrou, Panos Rondogiannis: The Generalized Intensional Transformation for Implementing Lazy Functional Languages - PDF
Parallel programming
  • William Jones: Warp Speed Haskell - 2009 PDF
  • Paul Hudak, John Hughes, Simon Peyton Jones and Philip Wadler: A History of Haskell: Being Lazy With Class' - PDF
  • Erik Mejer; Koen Klaessen: The design and implementation of Mondrian - PDF