Haskell

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
Haskell
Logo of Haskell
Парадигма функционален, [lazy], [modular]
Реализиране през 1990
Автор Саймън Пейтън-Джоунс, Филип Уадлър
Типизация на данните статична
Програмни диалекти Helium
Повлиян от Miranda, Clean,[1] FP,[1] Gofer,[1] Hope and Hope+,[1] Id,[1] ISWIM,[1] KRC,[1] Lisp,[1] ML and Standard ML,[1] Orwell, SASL,[1] SISAL,[1] Scheme[1]
Повлиява Agda,[2] Bluespec,[3] C++11/Concepts,[4] C#/LINQ,[5][6][7][8] CAL,[източник? (Поискан преди 6 дни)] Cayenne,[5] Clean,[5] Clojure,[9] CoffeeScript,[10] Curry,[5] Elm, Epigram,[източник? (Поискан преди 6 дни)] Escher,[източник? (Поискан преди 6 дни)] F#,[11] Frege,[12] Isabelle,[5] Java/Generics,[5] Kaya,[източник? (Поискан преди 6 дни)] LiveScript,[13] Mercury,[5] Omega,[източник? (Поискан преди 6 дни)] Perl_6,[14] Python,[5][15] Qi,[източник? (Поискан преди 6 дни)] Scala,[5][16] Swift,[17] Timber,[източник? (Поискан преди 6 дни)] Visual Basic 9.0[5][6]
Уебсайт haskell.org

Haskell (Ха̀скъл) е функционален език за програмиране. Името му е в чест на логика Хаскел Къри. Поради близостта си с математиката и богатството от математически библиотеки езикът е широко използван за решаване на кратки математически задачи.

Haskell се радва на широка общност от потребители, които непрекъснато допринасят нови библиотеки и функционалности. Haskell и SQL повлияват създаването на LINQ (Microsoft .NET Framework).

Пример[редактиране | edit source]

  • Намира стойността на x!, като създава списък от 1 до x и пресмята произведението на елементите му.
factorial x = product [1..x]
  • Функция, сортираща списък чрез алгоритъма Quicksort:
qsort [] = []
qsort (x:xs) = qsort l ++ [x] ++ qsort g
      where
           l = [ y | y <- xs, y <= x ]
           g = [ y | y <- xs, y > x ]

Външни препратки[редактиране | edit source]

Технически доклади
История

Бележки[редактиране | edit source]

  1. а б в г д е ж з и к л м Peyton Jones 2003, с. xi
  2. Norell, Ulf. Dependently Typed Programming in Agda. // Chalmers University, 2008. Посетен на 9 February 2012.
  3. Hudak, Hughes, p. 12-38,43
  4. Design of Concept Libraries for C++. // {{{journal}}}. 2011.
  5. а б в г д е ж з и к Hudak, Hughes, pp. 12-45–46
  6. а б Meijer, Erik. Confessions of a Used Programming Language Salesman: Getting the Masses Hooked on Haskell. // OOPSLA 2007.
  7. Meijer, Erik. C9 Lectures: Dr. Erik Meijer – Functional Programming Fundamentals, Chapter 1 of 13. // Channel 9. Microsoft, 1 October 2009. Посетен на 9 February 2012.
  8. Drobi, Sadek. Erik Meijer on LINQ. // InfoQ. QCon SF 2008, C4Media Inc., 4 March 2009. Посетен на 9 February 2012.
  9. Hickey, Rich. Clojure Bookshelf. // Listmania!. Amazon.com. Посетен на 9 February 2012.
  10. Heller, Martin. Turn up your nose at Dart and smell the CoffeeScript. // JavaWorld. InfoWorld, 18 October 2011. Посетен на 9 February 2012.
  11. Expert F#. Apress, 2007. с. 2. F# also draws from Haskell particularly with regard to two advanced language features called sequence expressions and workflows.
  12. Wechsung, Ingo. The Frege Programmin Language. // Посетен на 26 February 2014.
  13. LiveScript Inspiration. // Посетен на 2014-02-04.
  14. Glossary of Terms and Jargon. // Perl Foundation Perl 6 Wiki. The Perl Foundation, 28 February. Посетен на 9 February 2012.
  15. Kuchling, A. M.. Functional Programming HOWTO. // Python v2.7.2 documentation. Python Software Foundation. Посетен на 9 February 2012.
  16. Fogus, Michael. MartinOdersky take(5) toList. // Send More Paramedics. 6 August 2010. Посетен на 9 February 2012.
  17. Lattner, Chris. Chris Lattner's Homepage. // Chris Lattner, 2014-06-03. Посетен на 2014-06-03. 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.
Криейтив Комънс - Признание - Споделяне на споделеното Лиценз за свободна документация на ГНУ Тази страница частично или изцяло представлява превод на страницата „Haskell_programming_language“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс - Признание - Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите.