Haskell - ez

Haskell (orosz Haskell és Haskell.) - a funkcionális programozási nyelv. Ez az egyik leggyakoribb lusta programozási nyelvek. Ez egy nagyon fejlett rendszer gépelés, de a rendszer úgy van kialakítva modulok rosszabb. Az utolsó nyelvi norma, amely szabvánnyá vált a funkcionális programozás - Haskell-98. Onnan származik Miranda nyelvet. amely által kifejlesztett David Turner, mint egy hagyományos funkcionális nyelvet. Nevezték matematikus Haskell Curry.

jellemzői a nyelv

A fő Haskell nyelv jellemzői a következők:

Elfogadása óta az utolsó nyelvi norma (Haskell98) tartott sokáig, és azóta vezeti a végrehajtási nyelv (GHC és ölelések) bővült számos további jellemzői:

  • Polimorfizmus 2. és nagyobb helyet (2-es rangú és rang-N polimorfizmus)
  • Funkcionális függőségek (FD, funkcionális függőségek)

használata

Ez tolmács (az egyik legismertebb - fordító (az egyik legismertebb - Glasgow Haskell Compiler (GHC)).

Népszerű tudományos körökben, de kevéssé ismert körében alkalmazás programozók. Legutóbb a bővített alkalmazás könyvtárak és a nyelv integrálva közös szoftver rendszerek (.Net [1]. Com / ActiveX HaskellScript. Java jaskell), ami a nyelv egyre vonzóbb a professzionális programozók.

Bővítése nyelvi implementációk (utal GHC):

A legegyszerűbb példa

A következő példa bemutatja a szintaxis Haskell végrehajtásakor funkciók faktoriális:

Ez a meghatározás írja le a folyamatot a faktoriális a rekurzív függvény. Ez a meghatározás hasonló ahhoz, amely megtalálható a tankönyvekben számítástechnika. A legtöbb forráskód nyelv, mint a Haskell matematikai jelölés szempontból a szintaxis és a használat, például a fenti példában átírható

amely megfelel a matematikai definíciója a faktoriális.

A második sor alapul mechanizmusa mintaillesztést, ami fontos jellemzője Haskell. Ez a mechanizmus okozza a tolmács hajtogat fentről lefelé mentén meghatározása és megtalálják az első mintát (azaz egy sor formális paraméterek, amelyek illeszkednek az értékeket ténylegesen átadott paraméterek a funkció), és meghatározásra kerül rögzítésre a mintával. Ebben az esetben a második sorban meghatározás van kiválasztva, ha az aktuális paraméter a hívás fac függvény nulla lesz.

A harmadik vonal mellett mintaillesztéses mechanizmust használja a védett kifejezést - n> 0. Ez biztosítja, hogy a funkció nem fog működni a negatív számok, amelyre a faktoriális nem definiált. Ha negatív számot vezetjük, mint tényleges paraméter a fac funkciót. A program leáll egy hibaüzenettel.

Bonyolultabb példák

A legegyszerűbb számológép kiszámításához kifejezéseket RPN lehet meghatározni Haskell nyelv használata a hang jellemzők:

Ebben a meghatározásban a funkció szoros (szeres) okozta az aktuális paraméterek [] (üres lista - a kezdeti érték szeres), f (a funkció értelmezéséhez egy szót a beviteli érték) és a listát a kapott eredeti szöveg szakított kifejezést szavak, azaz vonal , elválasztva egymástól térköz. Ennek eredményeként a lista kapunk, amely a közbenső és a végső értékeket kapunk, ha kiszámítjuk a bemeneti kifejezés.

Egy másik példában egy számítási módszere végtelen listáját Fibonacci-számok lineáris időben:

Végtelen lista segítségével létrehozott corecursion mechanizmus - egy listát a következő értékek alapján számítják ki a rendelkezésre álló a kezdeti a 0 és 1, mint az első két elem a listában. Ez a meghatározás egy példa alkalmazása lusta értékelési mechanizmus, amely lényeges része Haskell nyelv. Ahhoz, hogy megértsük, hogyan működik ez a meghatározás, mondhatjuk a számítás az első hat Fibonacci-számok segítségével ezt a funkciót:

Ugyanez a funkció lehet írni rövidebb és érthetőbb ha bővítése Haskell nyelv, amely végre a fordító GHC (párhuzamosítás listák meghatározó, Párhuzamos List Comprehensions):

Megvalósítása megállapítás minden prímszám a szokásos módon (ellenőrizze az egyes egyszerűség kedvéért)

És megszerzésére, általában végtelen listája prímszám:

Írt alkalmazások Haskell

  • Agda - programozási nyelv függő típusú és igazolások tételek.
  • verziókezelő rendszer
  • Epigramma - egy programozási nyelv függő típusok.
  • House - egy operációs rendszer grafikus felületen
  • Jaskell - funkcionális programozási nyelv, amely fut a Java Virtual Machine
  • Pugs - fordító és tolmács az Perl 6 nyelv
  • terminál kliens mikroblog
  • csempézés ablakkezelő az X Window System

irodalom

Haskell (Arkansas) - Város Haskell Haskell, Arkansas Ország SSHASSHA ... Wikipedia

Haskell (County, Texas) - Haskell megye Haskell megyei kerületi Ország Egyesült Államok állapota tartalmazza a Texas közigazgatási központja ... Wikipedia

Haskell, Mervyn Nathaniel - Nathaniel Mervin Haskell Nathaniel Mervin Haskell ... Wikipedia

L. Haskell - Haskell (Haskell) Arnold Lionel (1903/07/19 London, # 150; 11.14.80 BAT), Eng. ábra balett t RA. Diplomáját Cambridge University t (1926). A 1928 # 150; 35 írta kritikus. cikkek a gáz. Daily Telegraph. 1930-ban együtt F. Richardson és E. Evans ... ... Balett. enciklopédia

Ueksler Haskell - (Wexler) (p 1922/06/02.) Egy amerikai üzemben igazgatója. Diplomáját a University of California. A mozi 1955 óta (a dokumentumfilm „Living City”). Az első munkája rendező # 151; dokumentumfilm "Strange Victory" (1958). Levette ... ... Film: Collegiate Dictionary

  • Hekvort, David Haskell. Dzhessi Rassel. Ez a könyv lesz összhangban a rendelését Technology Print-on-Demand technológiát. High Quality Content Wikipedia cikket! Devid Haskell Hekvort (született David Haskell Hackworth ;. 11 ... Tovább Vásárlás 1254 rubelt
  • Az ügy az Arany fegyverrel. Gyilkosság egy játékboltban. Crispin E. Young színésznő Isolde Haskell gyűlölt sok, de aki még mindig úgy döntött, hogy a gyilkosságot? Bár a rendőrség megtalálja a rajongók és szerelmesek, akiknek lakóhelye Isolde amúgy ... Bővebben Vásárlás 459 rubelt
  • Öt nappal Párizsban. Daniela Stil. Olivia - a titokzatos kis nő, egy tragikus múlt. Mielőtt találkozott vele egy párizsi hotel „Ritts` Peter Haskell fogalma sem volt arról, hogy az élete postroenana veszélyezteti ... Tovább Vásárolja 200 rubelt
Egyéb „Haskell” könyv kérésre >>