Difference between revisions of "Ro/Haskell"
Line 1: | Line 1: | ||
[[Image:Haskelllogo-small.jpg|center|Haskell - Un limbaj functional pur]] |
[[Image:Haskelllogo-small.jpg|center|Haskell - Un limbaj functional pur]] |
||
+ | |||
− | <center> |
||
− | Haskell este un limbaj de uz general, din categoria limbajelor functionale pure (fara instructiuni imperative sau producatoare de efecte laterale). Foloseste Lazy Evaluation.Beneficiaza de un sistem de tipuri revolutionar, cu tipuri polimorfice si clase de tipuri. Permite programarea cu clase si instante de clase definite utilizator. Are o sintaxa bidimensionala (bazata pe notiunea de Layout). Sintaxa bidimensionala face programele mult mai clare decat echivalentele lor in LISP (netipizat si cu multe paranteze: LISP = Limbajul InSuportabilelor Paranteze) sau cele in Scheme |
+ | Haskell este un limbaj de uz general, din categoria limbajelor functionale pure (fara instructiuni imperative sau producatoare de efecte laterale). Foloseste Lazy Evaluation.Beneficiaza de un sistem de tipuri revolutionar, cu tipuri polimorfice si clase de tipuri. Permite programarea cu clase si instante de clase definite utilizator. Are o sintaxa bidimensionala (bazata pe notiunea de Layout). Sintaxa bidimensionala face programele mult mai clare decat echivalentele lor in LISP (netipizat si cu multe paranteze: LISP = Limbajul InSuportabilelor Paranteze) sau cele in Scheme ori ML. Alte plusuri sunt tipizarea stricta, existenta monadelor si a do-notatiei (o scriere cvasi imperativa posibila intr-un limbaj functional pur) precum si existenta listelor infinite si a "multimilor ordonate" definite descriptiv, numite in manualele de Haskell (in limba engleza) "list comprehensions". |
Productivitatea programarii in Haskell este net superioara altor limbaje, un algoritm Quicksort scriindu-se in doar 3-4 linii de program. |
Productivitatea programarii in Haskell este net superioara altor limbaje, un algoritm Quicksort scriindu-se in doar 3-4 linii de program. |
||
Line 8: | Line 8: | ||
Exista o multime de compilatoare si interpretoare pentru Haskell si sunt disponibile gratuit: Hugs (interpretor), GHC (compilator), Hellium (mediu de instruire) si altele. |
Exista o multime de compilatoare si interpretoare pentru Haskell si sunt disponibile gratuit: Hugs (interpretor), GHC (compilator), Hellium (mediu de instruire) si altele. |
||
+ | |||
− | </center> |
||
__NOTOC__ |
__NOTOC__ |
||
<center> |
<center> |
||
Line 16: | Line 16: | ||
* [http://www.haskell.org/sitewiki/images/9/97/De_ce_Haskell.pdf De ce Haskell ?]O prezentare a limbajului Haskell din punctul de vedere al unui specialist in Limbaje Formale.<br> Un capitol dintr-o viitoare carte de Dan Popa. (166643 bytes) [http://www.haskell.org/sitewiki/images/9/97/De_ce_Haskell.pdf - download "De ce Haskell ?"] |
* [http://www.haskell.org/sitewiki/images/9/97/De_ce_Haskell.pdf De ce Haskell ?]O prezentare a limbajului Haskell din punctul de vedere al unui specialist in Limbaje Formale.<br> Un capitol dintr-o viitoare carte de Dan Popa. (166643 bytes) [http://www.haskell.org/sitewiki/images/9/97/De_ce_Haskell.pdf - download "De ce Haskell ?"] |
||
+ | |||
⚫ | |||
+ | |||
* Doriti un articol despre Haskell ? Ati auzit de Haskell ? - Sondaj de pe site-ul revistei MyLinux actualmente comasata cu MyHardware. [http://www.myl.ro/forum/index.php?showtopic=1170 - Sondaj din 2005]. Pe scurt cateva pareri incurajatoare: |
* Doriti un articol despre Haskell ? Ati auzit de Haskell ? - Sondaj de pe site-ul revistei MyLinux actualmente comasata cu MyHardware. [http://www.myl.ro/forum/index.php?showtopic=1170 - Sondaj din 2005]. Pe scurt cateva pareri incurajatoare: |
||
** Opinie: "Unii spun ca e chiar mai "object-oriented" decat Python.O prezentare a acestuia intr-un limbaj accesibil tuturor ar fi interesanta." |
** Opinie: "Unii spun ca e chiar mai "object-oriented" decat Python.O prezentare a acestuia intr-un limbaj accesibil tuturor ar fi interesanta." |
||
** Opinie: "Da, e un limbaj destul de mişto. Chiar ar fi util pentru cei care n-au auzit de el." |
** Opinie: "Da, e un limbaj destul de mişto. Chiar ar fi util pentru cei care n-au auzit de el." |
||
** Opinie: "Pare interesant , din cate stiu compilatorul de perl6 este scris in haskel. [http://www.pugscode.org/ ]" |
** Opinie: "Pare interesant , din cate stiu compilatorul de perl6 este scris in haskel. [http://www.pugscode.org/ ]" |
||
+ | |||
* Alte capitole de manual - in pregatire |
* Alte capitole de manual - in pregatire |
||
+ | |||
* Utilizarea ca instrument de realizare a interpretoarelor: Datorita modului atat de simplu in care se pot defini in Haskell elementele unui translator limbajul Haskell se recomanda de la sine ca un DSL (domain specific language) pentru realizarea interpretoarelor si compilatoarelor. Astfel, in Haskell se definesc foarte usor: |
* Utilizarea ca instrument de realizare a interpretoarelor: Datorita modului atat de simplu in care se pot defini in Haskell elementele unui translator limbajul Haskell se recomanda de la sine ca un DSL (domain specific language) pentru realizarea interpretoarelor si compilatoarelor. Astfel, in Haskell se definesc foarte usor: |
||
** Textul de intrare vazut ca string si simultan ca lista de caractere (in Haskell tipul String avand ambele semnificatii) |
** Textul de intrare vazut ca string si simultan ca lista de caractere (in Haskell tipul String avand ambele semnificatii) |
||
Line 28: | Line 33: | ||
** Semantica se poate transcrie in do-notatie, dar folosind de obicei o alta monada decat monada parserelor. Nu sunt necesari operatori specializati pentru lifting-ul functiilor uzuale in universul monadei, asa cum se proceda pe vremea cand Espinosa scria la teza sa de doctorat, celebra teza despre "Semantic Lego". Descarcati de aici [http://www.haskell.org/sitewiki/images/9/9b/Transcrierea_semanticii_in_do_notatie.pdf Transcrierea_semanticii_in_do_notatie.pdf un capitol ] dintr-o carte de Dan Popa, destinat a introduce cititorul in tehnicile de exprimare a semanticilor in do-notatie[http://www.haskell.org/sitewiki/images/9/9b/Transcrierea_semanticii_in_do_notatie.pdf (163KB, MIME type: application/pdf).] Dovedeste totodata superioritatea Haskell-ului asupra altor limbaje functionale mai vechi (LISP,SCHEME), in priviinta posibilitatilor de a transcrie semantici in el si explica necesitatea indeplinirii Legilor Monadei. |
** Semantica se poate transcrie in do-notatie, dar folosind de obicei o alta monada decat monada parserelor. Nu sunt necesari operatori specializati pentru lifting-ul functiilor uzuale in universul monadei, asa cum se proceda pe vremea cand Espinosa scria la teza sa de doctorat, celebra teza despre "Semantic Lego". Descarcati de aici [http://www.haskell.org/sitewiki/images/9/9b/Transcrierea_semanticii_in_do_notatie.pdf Transcrierea_semanticii_in_do_notatie.pdf un capitol ] dintr-o carte de Dan Popa, destinat a introduce cititorul in tehnicile de exprimare a semanticilor in do-notatie[http://www.haskell.org/sitewiki/images/9/9b/Transcrierea_semanticii_in_do_notatie.pdf (163KB, MIME type: application/pdf).] Dovedeste totodata superioritatea Haskell-ului asupra altor limbaje functionale mai vechi (LISP,SCHEME), in priviinta posibilitatilor de a transcrie semantici in el si explica necesitatea indeplinirii Legilor Monadei. |
||
** Prelucrarile recursive de arbori atat de necesare la parcurgerea arborilor, la listarea unui arbore sintactic (pretty printing) se scriu imediat deoarece Haskell permite definirea de functii recursive, ca succesiuni de ecuatii. |
** Prelucrarile recursive de arbori atat de necesare la parcurgerea arborilor, la listarea unui arbore sintactic (pretty printing) se scriu imediat deoarece Haskell permite definirea de functii recursive, ca succesiuni de ecuatii. |
||
+ | l |
||
⚫ | |||
== Interpretoare si compilatoare disponibile - pagini in engleza == |
== Interpretoare si compilatoare disponibile - pagini in engleza == |
||
Line 47: | Line 52: | ||
* O introducere agreabila in Haskell traducerea celebrului "A Gentle Introduction In Haskell - o lucrare clasica pe care incercam <br>sa v-o oferim in traducere. <br> |
* O introducere agreabila in Haskell traducerea celebrului "A Gentle Introduction In Haskell - o lucrare clasica pe care incercam <br>sa v-o oferim in traducere. <br> |
||
− | + | Vestea proasta: Datorita felului cum se puncteaza asemenea <br> activitati la Universitatea Bacau, impartind punctajul la numarul autorilor si <br> netinind cont de valoarea cartii sau de faptul ca versiunea romaneasca a unei carti libere trebuie <br> integral rescrisa probabil acest proiect va fi amanat ca fiind neprioritar. <br> Pacat :( |
|
</center> |
</center> |
Revision as of 19:57, 14 December 2006
Haskell este un limbaj de uz general, din categoria limbajelor functionale pure (fara instructiuni imperative sau producatoare de efecte laterale). Foloseste Lazy Evaluation.Beneficiaza de un sistem de tipuri revolutionar, cu tipuri polimorfice si clase de tipuri. Permite programarea cu clase si instante de clase definite utilizator. Are o sintaxa bidimensionala (bazata pe notiunea de Layout). Sintaxa bidimensionala face programele mult mai clare decat echivalentele lor in LISP (netipizat si cu multe paranteze: LISP = Limbajul InSuportabilelor Paranteze) sau cele in Scheme ori ML. Alte plusuri sunt tipizarea stricta, existenta monadelor si a do-notatiei (o scriere cvasi imperativa posibila intr-un limbaj functional pur) precum si existenta listelor infinite si a "multimilor ordonate" definite descriptiv, numite in manualele de Haskell (in limba engleza) "list comprehensions".
Productivitatea programarii in Haskell este net superioara altor limbaje, un algoritm Quicksort scriindu-se in doar 3-4 linii de program.
Exista o multime de compilatoare si interpretoare pentru Haskell si sunt disponibile gratuit: Hugs (interpretor), GHC (compilator), Hellium (mediu de instruire) si altele.
Despre Haskell dorim sa prezentam
l Interpretoare si compilatoare disponibile - pagini in englezaLucrari in limba romana
Carti in pregatire
DRAFT-ul unui manual despre Haskell si folosirea lui la
Vestea proasta: Datorita felului cum se puncteaza asemenea |