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,[3][5][6][7] CAL,[източник? (Поискан преди 8 дни)] Cayenne,[3] Clean,[3] Clojure,[източник? (Поискан преди 2 дни)] CoffeeScript,[8] Curry,[3] Elm, [източник? (Поискан преди 2 дни)] Epigram,[източник? (Поискан преди 8 дни)] Escher,[източник? (Поискан преди 8 дни)] F#,[9] Frege,[10] Isabelle,[3] Java/Generics,[3] Kaya,[източник? (Поискан преди 8 дни)] LiveScript,[11] Mercury,[3] Omega,[източник? (Поискан преди 8 дни)] Perl_6,[12] Python,[3] [13] Qi,[източник? (Поискан преди 8 дни)] Scala,[3] [14] Swift,[15] Timber,[източник? (Поискан преди 8 дни)] Visual Basic 9.0[3] [5]
Уебсайт 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. а б в г д е ж з и к л м Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, 2003. ISBN 0521826144.
  2. Norell, Ulf. Dependently Typed Programming in Agda. // Chalmers University, 2008. Посетен на 24 October 2014.
  3. а б в г д е ж з и к л A History of Haskell: Being Lazy with Class. // Proceedings of the third ACM SIGPLAN conference on History of programming languages (HOPL III). 2007. ISBN 978-1-59593-766-7. DOI:10.1145/1238844.1238856.
  4. Design of Concept Libraries for C++. // Proceedings of the International Conference on Software Language Engineering. 2011.
  5. а б Meijer, Erik. Confessions of a Used Programming Language Salesman: Getting the Masses Hooked on Haskell. // OOPSLA 2007.
  6. Meijer, Erik. C9 Lectures: Dr. Erik Meijer – Functional Programming Fundamentals, Chapter 1 of 13. // Channel 9. Microsoft, 1 October 2009. Посетен на 9 February 2012.
  7. Drobi, Sadek. Erik Meijer on LINQ. // InfoQ. QCon SF 2008, C4Media Inc., 4 March 2009. Посетен на 9 February 2012.
  8. Heller, Martin. Turn up your nose at Dart and smell the CoffeeScript. // JavaWorld. InfoWorld, 18 October 2011. Посетен на 9 February 2012.
  9. Expert F#. Apress, 2007. с. 2. F# also draws from Haskell particularly with regard to two advanced language features called sequence expressions and workflows.
  10. Wechsung, Ingo. The Frege Programming Language. // Посетен на 2014-10-24.
  11. LiveScript Inspiration. // Посетен на 2014-10-24.
  12. Glossary of Terms and Jargon. // Perl Foundation Perl 6 Wiki. The Perl Foundation, 28 February. Посетен на 9 February 2012.
  13. Kuchling, A. M.. Functional Programming HOWTO. // Python v2.7.2 documentation. Python Software Foundation. Посетен на 2014-10-24.
  14. Fogus, Michael. MartinOdersky take(5) toList. // Send More Paramedics. 6 August 2010. Посетен на 9 February 2012.
  15. Lattner, Chris. Chris Lattner's Homepage. // Chris Lattner, 2014-06-03. Посетен на 2014-10-24. 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 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите.