Haskell
Z Wikipedie, otevřené encyklopedie
Haskell je standardizovaný funkcionální programovací jazyk používající zkrácené vyhodnocování, pojmenovaný na počest logika Haskella Curryho. Byl vytvořen v 80. letech 20. století. Posledním polooficiálním standardem je Haskell 98, který definuje minimální a přenositelnou verzi jazyka využitelnou k výuce nebo jako základ dalších rozšíření. Jazyk se rychle vyvíjí, především díky svým implementacím Hugs a GHC.
Haskell je jazyk dodržující referenční transparentnost. To, zjednodušeně řečeno, znamená, že tentýž (pod)výraz má na jakémkoliv místě v programu stejnou hodnotu. Mezi další výhody tohoto jazyka patří přísné typování proměnných, které programátorovi může usnadnit odhalování chyb v programu. Haskell plně podporuje práci se soubory i standardními vstupy a výstupy, která je ale poměrně složitá kvůli zachování referenční transparentnosti. Jako takový se Haskell hodí hlavně pro algoritmicky náročné úlohy minimalizující interakci s uživatelem.
[editovat] Příklady
Definice funkce faktoriálu:
fac 0 = 1 fac n = n * fac (n - 1)
Jiná definice faktoriálu (používá funkci product
ze standardní knihovny Haskellu):
fac n = product [1..n]
Naivní implementace funkce vracející n-tý prvek Fibonacciho posloupnosti:
fib 0 = 0 fib 1 = 1 fib n = fib (n - 2) + fib (n - 1)
Elegantní zápis řadícího algoritmu quicksort:
qsort [] = [] qsort (pivot:tail) = qsort left ++ [pivot] ++ qsort right where left = [y | y <- tail, y < pivot] right = [y | y <- tail, y >= pivot]
[editovat] Implementace
Následující implementace zcela (nebo téměř zcela) vyhovují standardu Haskell 98 a jsou distribuovány pod open source licencí.
- Hugs ([1]) je interpret mezikódu (bajtkódu). Nabízí rychlý překlad programů a snesitelnou rychlost spouštění. Je vhodný především pro výukové účely.
- Glasgow Haskell Compiler (GHC, [2]). Glasgow Haskell Compiler umí překládat zdrojové kódy Haskellu do kódu závislého na architektuře počítače, případně do jazyka C.
- nhc98 ([3]) je dalším interpretem využívajícím mezikód, běh programů je znatelně rychlejší než u Hugsu. Nhc98 se zaměřuje na hospodárnou správu paměti, a je tak ideální pro využití na starších počítačích.
[editovat] Externí zdroje
- Domovská stránka Haskellu
- Haskell.cz – wiki o Haskellu v češtině
- Haskell.cz blog – blog o Haskellu v češtině
Programovací jazyky | |||
ABAP | Ada | AppleScript | AWK | Assembler | C | C++ | C# | COBOL | ColdFusion | Clean | D | Eiffel | Erlang | Flex | Fortran | JADE | Java | JavaScript | Lisp | Lua | Oberon | Object Pascal | Objective-C | Pascal | Pawn | Perl | PHP | Python | REALbasic | REBOL | RPG | Ruby | SQL / PL/SQL | Tcl / Tcl/Tk | Visual Basic / VBScript | VB.NET | Visual FoxPro
|