Haskell - aceasta

Haskell (Rusă Haskell și Haskell.) - un limbaj de programare funcțional. Este una dintre cele mai comune limbaje de programare leneș. Ea are un sistem foarte dezvoltat de tastare, dar sistemul este proiectat module mai rău. standard de limbă trecută, care a devenit standardul pentru programare funcțional - Haskell-98. Ea provine din limba Miranda. care a fost dezvoltat de David Turner ca limbaj funcțional standard de. Numit după matematicianul Haskell Curry.

caracteristici ale limbii

Principalele caracteristici lingvistice Haskell sunt următoarele:

De la adoptarea standardului ultimei limbi (Haskell98) a fost nevoie de o lungă perioadă de timp și a fost de lider limba de punere în aplicare (GHC și îmbrățișări) a fost extins o serie de caracteristici suplimentare:

  • Două Polimorfism și gradelor superioare (rank-2 și rang-N polimorfism)
  • dependențe funcționale (FD, dependențe funcționale)

utilizarea

Are interpreți (una dintre cele mai renumite - compilatoare (una dintre cele mai renumite - Glasgow Haskell Compiler (GHC)).

În cercurile academice, dar puțin cunoscut printre programatorii de aplicații. extins recent set de biblioteci de aplicații și limbaj integrate în sisteme software comune (jaskell .Net [1]. com / ActiveX HaskellScript. Java), ceea ce face limba mai mult și mai atractivă pentru programatori profesioniști.

Extinderea implementări lingvistice (se referă la GHC):

Cele mai simple exemple

Următorul exemplu arată sintaxa Haskell la implementarea funcțiilor pentru factorial:

Această definiție descrie procesul de factorialului ca funcție recursivă. Această definiție este similară cu cea care pot fi găsite în manuale de informatică. Majoritatea codului sursă cum ar fi limba notație matematică Haskell în aspecte ale sintaxei și de utilizare, de exemplu, exemplul de mai sus poate fi rescrisă ca

care corespunde definiției matematice a factorialului.

A doua linie se bazează pe mecanismul de potrivire de model, care este o caracteristică importantă a Haskell. Acest mecanism face ca iterăm interpret de sus în jos de-a lungul liniilor de definire și pentru a găsi primul eșantion (de exemplu, un set de parametri formale care se potrivesc valorile parametrilor trecut de fapt la funcția) și o determinare este înregistrată cu proba. În acest caz, definiția a doua linie este selectată, atunci când parametrul real în funcția de apel inst va fi zero.

Al treilea rând, în plus față de mecanismul de model de potrivire pentru a folosi expresia protejată - n> 0. Acest lucru asigură faptul că funcția nu va funcționa pentru numere negative, pentru care factorialului este nedefinit. În cazul în care un număr negativ este trecut ca un parametru real în funcția fac. programul se va opri cu un mesaj de eroare.

Exemple mai sofisticate

Cel mai simplu calculator de calcul expresii RPN pot fi determinate pe limba Haskell folosind caracteristicile audio:

În această definiție, funcția de ori (ori) este apelată cu parametrii actuali [] (gol listă - valoarea inițială pentru convoluției), f (o funcție pentru a interpreta un singur cuvânt în valoarea de intrare) și o listă de linie sursă frântă primită cu privire la cuvântul, care este o linie , separate unele de altele prin spații libere. Ca rezultat al listei se obține, care cuprinde valorile intermediare și finale obținute la calculul expresiei de intrare.

Un alt exemplu arată o metodă de calcul a unei liste infinit de numere Fibonacci, în timp liniar:

Lista Endless este creat folosind mecanismul corecursion - o listă cu următoarele valori sunt calculate pe baza disponibile cu inițiale 0 și 1 ca primele două elemente din listă. Această definiție este un exemplu de utilizare a mecanismului de evaluare leneș, care este o parte esențială limba Haskell. Pentru a înțelege cum funcționează această definiție, putem lua în considerare la calcularea primelor șase numere Fibonacci cu ajutorul acestei funcții:

Aceeași funcție poate fi scrisă mai scurtă și mai ușor de înțeles atunci când se utilizează limbajul de expansiune Haskell, care este implementat în GHC compilator (liste paralelizarea determinanți, paralele Lista Comprehensions):

Realizarea de a găsi toate numerele prime în mod obișnuit (verificați fiecare dintre simplitatea)

Și obținerea, în general, o listă infinită de numere prime:

Aplicațiile scrise în Haskell

  • Agda - limbaj de programare cu tipuri de dependente și dovezi ale teoreme.
  • Sistemul de control al versiunii
  • Epigramă - un limbaj de programare cu tipuri de dependente.
  • Casa - un sistem de operare cu o interfață grafică
  • Jaskell - funcțional limbaj de scripting care se execută în Java Virtual Machine
  • Pug - compilator și interpret pentru limba Perl 6
  • client terminal microblogging
  • Tigla manager de ferestre pentru X Window System

literatură

Haskell (Arkansas) - Oras Haskell Haskell, Arkansas Țară SSHASSHA ... Wikipedia

Haskell (County, Texas) - Haskell Județ Haskell County District Tara Statele Unite ale Americii Stare inclus în Centrul de Texas Administrativ ... Wikipedia

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

L. Haskell - Haskell (Haskell) Arnold Lionel (07/19/1903 Londra, # 150; 11.14.80 Bat), Eng. figura balet t ra. A absolvit Universitatea Cambridge t (1926). În 1928 # 150; 35 a scris critică. articole în gaz. Daily Telegraph. În 1930, împreună cu F. Richardson și E. Evans ... ... Balet. enciclopedie

Ueksler Haskell - (Wexler) (p 2.6.1922.), Operatorul american, regizor. A absolvit de la Universitatea din California. În cinema din anul 1955 (documentarul "City Living"). Prima lucrare de director # 151; documentar "Victory Strange" (1958). A plecat ... ... Film: Collegiate Dicționar

  • Hekvort, David Haskell. Dzhessi Rassel. Această carte va fi făcută în conformitate cu comanda pe tehnologia de imprimare Tehnologie-on-Demand. Conținutul de calitate înaltă prin articole wikipedia! Devid Haskell Hekvort (născut David Haskell Hackworth ;. 11 ... Citește mai mult Vand pentru 1254 de ruble
  • Cazul a amenințat cu arma de Aur. Crima într-un magazin de jucării. Crispin E. Young actrita Isolde Haskell urât de mulți, dar care încă decis să meargă la uciderea ei? În timp ce poliția este o listă de fani și iubitori ale căror vieți Isolda oricum ... Citește mai mult Vand pentru 459 de ruble
  • Cinci zile la Paris. Daniela Stil. Olivia - femeia misterioasă puțin cu un trecut tragic. Înainte de întâlnirea cu ea într-un hotel din Paris Ritts` Peter Haskell a avut nici o idee că postroenana viață compromite ... Citește mai mult de 200 de ruble Cumpără pentru
Alte carte „Haskell“ la cerere >>