Zajímavosti i z jiných jazyků, než je C a C++

Od Petr Zemek, 2009-09-13

Jelikož programuji a zajímám se i o jiné jazyky než je C a C++ (Python, Haskell, Java, SQL, PHP, HTML/XML, CSS, JavaScript, LaTeX, Vimscript, minoritně o Prolog či různé assemblery, dříve Pascal), tak jsem se rozhodl, že občas napíšu i nějakou zajímavost z ostatních jazyků. Nebude to nijak závazné, ani neplánuji žádný pravidelný seriál, ale když při studiu/programování narazím na nějakou zajímavost, tak ji sem možná napíšu :). Témata na tom budou (co se týče obtížnosti) různá - především se ale asi bude jednat o pokročilá témata.

To bylo asi tak vše, co jsem chtěl na začátek napsat, ale protože by se jednalo o opravdu krátký příspěvek :), tak jsem se rozhodl, že alespoň krátce popíšu dva z jazyků, které patří mezi méně známé - Haskell a Vimscript.

Pár slov o jazyce Haskell

Jazyk Haskell je čistě funkcionální jazyk s nestriktní sémantikou (argumenty při volání funkce se nevyhodnocují před jejím zavoláním) a statickým typováním (za překladu). Nestriktní sémantika bývá implementována pomocí líného vyhodnocování (lazy evaluation), což ale není to samé a specifikace jazyka to explicitně nevyžaduje (Haskell není technicky úplně lazy, ale o tom kdyžtak jindy).

Jazyk dále poskytuje referenční transparenci (návratová hodnota funkce závisí pouze na předaných argumentech, nikoliv na okolí, což např. umožňuje memoizaci), algebraické datové typy, typové třídy, typový polymorfismus (nepotřebujeme speciální funkci pro výpočet délky seznamu znaků a seznamu čísel), pattern matching (bez překladu), spoustu syntaktických vychytávek, např. list comprehension (bez překladu) a další vymoženosti. Stavově závislé operace jako je vstup/výstup jsou řešeny přes monády (vychází z teorie kategorií). Dále volitelně obsahuje (podobně jako v Pythonu, kde to ale volitelné není) syntaxi závislou na bílých znacích (white-space), což doporučuji pro přehlednost využívat.

Pokud se toho chcete dozvědět o jazyce Haskell více, pak doporučuji začít na Haskell wiki, což je takový rozcestník pro získání informací ze světa Haskellu. Pokud se chcete něco za jazyka naučit, pak vyzkoušejte některý z řady existujících tutoriálů (mohu doporučit tento) či knih (mohu doporučit tuhle).

Pár slov o jazyce Vimscript

Jazyk Vimscript je dynamický, dynamicky typovaný interpretovaný skriptovací jazyk vestavěný do editoru Vim, pomocí kterého lze měnit a rozšiřovat chování editoru (podobně jako GNU Emacs používá svůj dialekt Lispu). Na rozdíl od dialektu Lispu v Emacsu je ovšem Vimscript imperativní (obsahuje ovšem některé funkce známé z funkcionálního světa, jako je např. map()). Mezi jeho vlastnosti patří ty, které byste od takového jazyka očekávali, čili klasicky proměné, výrazy (i regulární), řídící konstrukty (podmínky, cykly) a funkce. Mezi datové typy patří např. čísla (jak se pevnou, tak pohyblivou řadovou čárkou), řetězce, seznamy a slovníky (asociativní pole). Jazyk dále obsahuje podporu pro výjimky.

Pokud se chcete o jazyce Vimscript a podpoře pro skriptování dozvědět více, doporučuji nápovědu k tomuto tématu ve Vimu či nějaký tutoriál (např. tento na ibm.com). Také se můžete podívat do databáze programů napsaných ve Vimscriptu.

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.

Filtrované HTML (využíváno)

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <table>
  • Zvýraznění syntaxe kódu lze povolit přes následující značky: <code>, <blockcode>, <bash>, <c>, <cpp>, <haskell>, <html>, <java>, <javascript>, <latex>, <perl>, <php>, <python>, <ruby>, <rust>, <sql>, <text>, <vim>, <xml>, <yaml>.
  • Řádky a odstavce se zalomí automaticky.
  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
CAPTCHA
6 + 8 =
Vyřešte tento jednoduchý matematický příklad a vložte výsledek. Např. pro 1+3 vložte 4.
Nějak se mi tady rozmohl spam, takže poprosím o ověření.