Haskell

Haskell
Logo of Haskell
ParadigmPurely functional
Designed byLennart Augustsson, Dave Barton, Brian Boutel, Warren Burton, Joseph Fasel, Kevin Hammond, Ralf Hinze, Paul Hudak, John Hughes, Thomas Johnsson, Mark Jones, Simon Peyton Jones, John Launchbury, Erik Meijer, John Peterson, Alastair Reid, Colin Runciman, Philip Wadler
First appeared1990; 34 years ago (1990)[1]
Stable release
Haskell 2010[2] / July 2010; 14 years ago (2010-07)
Preview release
Haskell 2020 announced[3]
Typing disciplineInferred, static, strong
OSCross-platform
Filename extensions.hs, .lhs
Websitehaskell.org
Major implementations
GHC, Hugs, NHC, JHC, Yhc, UHC
Dialects
Gofer
Influenced by
Clean,[4] FP,[4] Gofer,[4] Hope and Hope+,[4] Id,[4] ISWIM,[4] KRC,[4] Lisp,[4]
Miranda,[4] ML and Standard ML,[4] Orwell, SASL,[4] Scheme,[4] SISAL[4]
Influenced
Agda,[5] Bluespec,[6] C++11/Concepts,[7]
C#/LINQ,[8][9][10][11] CAL,[citation needed] Cayenne,[8] Clean,[8] Clojure,[12]
CoffeeScript,[13] Curry,[8] Elm,
Epigram,[citation needed] Escher,[14] F#,[15] Hack,[16] Idris,[17]
Isabelle,[8] Java/Generics,[8] LiveScript,[18]
Mercury,[8] Ωmega, PureScript,[19] Python,[8][20] Raku,[21]
Rust,[22] Scala,[8][23] Swift,[24]
Visual Basic 9.0[8][9]

Haskell (/ˈhæskəl/[25]) is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation.[26][27] Designed for teaching, research, and industrial applications, Haskell has pioneered several programming language features such as type classes, which enable type-safe operator overloading, and monadic input/output (IO). It is named after logician Haskell Curry.[1] Haskell's main implementation is the Glasgow Haskell Compiler (GHC).

Haskell's semantics are historically based on those of the Miranda programming language, which served to focus the efforts of the initial Haskell working group.[28] The last formal specification of the language was made in July 2010, while the development of GHC continues to expand Haskell via language extensions.

Haskell is used in academia and industry.[29][30][31] As of May 2021, Haskell was the 28th most popular programming language by Google searches for tutorials,[32] and made up less than 1% of active users on the GitHub source code repository.[33]

  1. ^ a b Hudak et al. 2007.
  2. ^ Marlow, Simon (24 November 2009). "Announcing Haskell 2010". Haskell (Mailing list). Retrieved 12 March 2011.
  3. ^ Riedel, Herbert (28 April 2016). "ANN: Haskell Prime 2020 committee has formed". Haskell-prime (Mailing list). Retrieved 6 May 2017.
  4. ^ a b c d e f g h i j k l m Peyton Jones 2003, p. xi
  5. ^ Norell, Ulf (2008). "Dependently Typed Programming in Agda" (PDF). Gothenburg: Chalmers University. Retrieved 9 February 2012.
  6. ^ Hudak et al. 2007, pp. 12–38, 43.
  7. ^ Stroustrup, Bjarne; Sutton, Andrew (2011). "Design of Concept Libraries for C++" (PDF). Software Language Engineering. Archived from the original (PDF) on 10 February 2012.
  8. ^ a b c d e f g h i j Hudak et al. 2007, pp. 12-45–46.
  9. ^ a b Meijer, Erik (2006). "Confessions of a Used Programming Language Salesman: Getting the Masses Hooked on Haskell". Oopsla 2007. CiteSeerX 10.1.1.72.868.
  10. ^ Meijer, Erik (1 October 2009). "C9 Lectures: Dr. Erik Meijer – Functional Programming Fundamentals, Chapter 1 of 13". Channel 9. Microsoft. Archived from the original on 16 June 2012. Retrieved 9 February 2012.
  11. ^ Drobi, Sadek (4 March 2009). "Erik Meijer on LINQ". InfoQ. QCon SF 2008: C4Media Inc. Retrieved 9 February 2012.{{cite news}}: CS1 maint: location (link)
  12. ^ Hickey, Rich. "Clojure Bookshelf". Listmania!. Archived from the original on 3 October 2017. Retrieved 3 October 2017.
  13. ^ Heller, Martin (18 October 2011). "Turn up your nose at Dart and smell the CoffeeScript". InfoWorld. Retrieved 2020-07-15.
  14. ^ "Declarative programming in Escher" (PDF). Retrieved 7 October 2015.
  15. ^ Syme, Don; Granicz, Adam; Cisternino, Antonio (2007). Expert F#. Apress. p. 2. F# also draws from Haskell particularly with regard to two advanced language features called sequence expressions and workflows.
  16. ^ "Facebook Introduces 'Hack,' the Programming Language of the Future". WIRED. 20 March 2014.
  17. ^ "Idris, a dependently typed language". Retrieved 26 October 2014.
  18. ^ "LiveScript Inspiration". Retrieved 4 February 2014.
  19. ^ Freeman, Phil (2016). "PureScript by Example". Leanpub. Retrieved 23 April 2017.
  20. ^ Kuchling, A. M. "Functional Programming HOWTO". Python v2.7.2 documentation. Python Software Foundation. Retrieved 9 February 2012.
  21. ^ "Glossary of Terms and Jargon". Perl Foundation Perl 6 Wiki. The Perl Foundation. Archived from the original on 21 January 2012. Retrieved 9 February 2012.
  22. ^ "Influences - The Rust Reference". The Rust Reference. Retrieved 31 December 2023.
  23. ^ Fogus, Michael (6 August 2010). "MartinOdersky take(5) toList". Send More Paramedics. Retrieved 9 February 2012.
  24. ^ Lattner, Chris (3 June 2014). "Chris Lattner's Homepage". Chris Lattner. Retrieved 3 June 2014. The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.
  25. ^ Chevalier, Tim (28 January 2008). "anybody can tell me the pronunciation of "haskell"?". Haskell-cafe (Mailing list). Retrieved 12 March 2011.
  26. ^ Type inference originally using Hindley-Milner type inference
  27. ^ Peyton Jones 2003.
  28. ^ Edward Kmett, Edward Kmett – Type Classes vs. the World
  29. ^ Mossberg, Erik (8 June 2020), erkmos/haskell-companies, retrieved 22 June 2020
  30. ^ O'Sullivan, Bryan; Goerzen, John; Stewart, Donald Bruce (15 November 2008). Real World Haskell: Code You Can Believe In. "O'Reilly Media, Inc.". pp. xxviii–xxxi. ISBN 978-0-596-55430-9.
  31. ^ "Haskell in Production: Riskbook". Serokell Software Development Company. Retrieved 7 September 2021.
  32. ^ "PYPL PopularitY of Programming Language index". pypl.github.io. May 2021. Archived from the original on 7 May 2021. Retrieved 16 May 2021.
  33. ^ Frederickson, Ben. "Ranking Programming Languages by GitHub Users". www.benfrederickson.com. Retrieved 6 September 2019.