Difference between revisions of "Ro/Haskell"

From HaskellWiki
Jump to: navigation, search
m
 
(257 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Image:Haskelllogo-small.jpg|center|Haskell - Un limbaj functional pur]]
 
  +
[[Category:Ro]]
  +
[[Image:Haskelllogo-small-flag-RO-8.jpg|center|Haskell - Un limbaj funcțional pur]] [https://wiki.haskell.org/Category:Ro Hartă site.]
   
 
<center>
 
<center>
Limbajul functional succesor al LISP-ului, Scheme-ului si ML-ului !!!<br>
 
  +
----
Cel mai productiv limbaj functional ! (Pagina actualizata pe 19.ian.2007)
 
  +
Haskell este limbajul funcțional succesor al LISP-ului, Scheme-ului și ML-ului!<br>
  +
Cel mai productiv limbaj funcțional! Limbajul folosit de autorii limbajului Perl 6 și ales de echipa Linspire, utilizat la inteligență artificială, prelucrări mulțimedia, rețele Petri, programare funcțională, în [[Robotică]], sinteză de circuite electronice, motoare de baze de date, cercetare, producție de software „type safe”, producție de limbaje (DSL-uri, cum este Limbajul Pseudocod [[Rodin]]), proiectare automată de scheme electronice, analize statistice și financiare (bancare), grafica 3D... <br>V-am stârnit curiozitatea? Citiți: [https://wiki.haskell.org/Întrebarile_incepatorului Întrebările începătorului]. Am adăugat răspunsuri noi (dec. 2009-16 ian. 2010). Înformațiile pentru studenți sunt la punctul 18, începeți de acolo, iar link-urile de descărcare în secțiunea 8. [https://www.haskell.org/haskellwiki/De_ce_sa_alegem_o_tema_de_licenta_cu_Haskell_si_Limbaje_Formale sau la pagina despre lucrări de licență.] Celor interesați de OpenGL le recomandăm noua pagină [[Ro/Haskell/OpenGL]]<br>
  +
  +
----
  +
Nota: Pagina cursului de [https://wiki.haskell.org/Ro/Haskell/Fundamentele_Programarii Fundamentele Programării] o puteți găsi și pe harta site-ului de sus sau dând click pe Ro (în josul paginii).
 
</center>
 
</center>
  +
  +
Cuprinsul paginii Ro/Haskell:
 
<br>
 
<br>
__NOTOC__
 
<center>
 
 
{| border=0 cellspacing=5 cellpadding=15
 
{| border=0 cellspacing=5 cellpadding=15
 
| valign=top bgcolor=#F0F0F0 style="text-align:left" |
 
| valign=top bgcolor=#F0F0F0 style="text-align:left" |
   
== Introducere ==
 
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, clasele fiind multimi de structuri algebrice (adica mai mult decat multimi de obiecte).
 
   
Haskell este DEOSEBIT: El are o sintaxa bidimensionala (bazata pe notiunea de Layout) asa ca simpla aliniere corecta pe verticala va scuteste de paranteze ! Iar daca puneti un spatiu in PLUS nu e o greseala. 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 [[monade]]lor 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".
 
  +
==Știri==
  +
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2014<br>
  +
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2013<br>
  +
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2012<br>
  +
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2011<br>
  +
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2010<br>
  +
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2009<br>
  +
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2008<br>
  +
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2007<br>
   
Productivitatea programarii in Haskell este net superioara altor limbaje, un algoritm [[Quicksort]] scriindu-se in doar 3-4 linii de program nu in 30-40 ca in C sau C++. Dati un click pe link-ul [[Quicksort]] pentru a-l vedea.
 
  +
==Aventura lansării comunității Ro/Haskell==
  +
Începuturile folosirii limbajului Haskell în Romania numai zile ușoare și simple n-au fost. Citiți [[Aventura lansarii comunitatii Ro/Haskell]].
   
Unul din motivele pentru care Haskell este atat de productiv este posibilitatea de a lucra cu functii de nivel superior, polimorfice, operand inclusiv pe structuri de date definite inductiv. Acele structuri de date beneficiaza de functii de afisare si comparare (si nu numai) generate automat prin "deriving" ori definite de utilizator.
 
  +
==Introducere==
  +
Un răspuns la întrebarea „Ce este Haskell și la ce ne-a folosit și ne foloseste el?” găsiți pe pagina [[Ro/Haskell/Introducere]]. Ultima carte introductivă aparută: [[O mica introducere in Haskell 98]]. Precedenta carte introductivă aparută: [[Introducere in Haskell 98 prin exemple]].
   
V-ati batut capul nu o data sa rescrieti rutinele de afisare ale unor structuri de date compuse (liste de arbori cu noduri perechi de ... samd) care se schimbau pe masura ce dezvoltati proiectul ? Ati refacut mereu functiile de comparatie pentru astfel de structuri de date compuse ? Folositi Haskell si adaugati declaratiilor de date "deriving Show" respectiv "deriving Eq" (Iar lista nu se opreste aici.) Haskell face automat restul si tipul nou creat capata din clipa declararii functiile de afisare sau comparare ce-i sunt necesare fara sa le scrieti dumneavoastra ! Dar le puteti rescrie daca nu va plac.
 
  +
==Despre Haskell dorim să prezentam... (Hoogle și nu numai)==
   
Exista o multime de compilatoare si interpretoare pentru Haskell si sunt disponibile gratuit. Hugs e un interpretor bun pentru primele lectii de Haskell. GHC este un compilator pentru proiecte profesionale. Cititi va rog si paragraful despre: Interpretoare si compilatoare de Haskell disponibile, tot pe aceasta pagina.
 
   
Apropos: Daca va intereseaza teoria automatelor si limbajelor formale sau metode de transcriere a structurilor de date dintr-un format in altul, Haskell este un instrument excelent. Un translator de la o sintaxa la alta se scrie uimitor de repede, in cateva ore. Ba chiar si un mic limbaj de programare ! Dar nu uitati mai inainte sa cititi ceva despre teoria limbajelor formale. Capitolul dedicat gramaticilor de tip 2 (Context Free Grammmars) din ierarhia lui Chomsky in primul rand dar si celelalte lucrari ale lui Noam Chomsky.
 
  +
* [https://wiki.haskell.org/wikiupload/9/97/De_ce_Haskell.pdf De ce Haskell?] - o prezentare a limbajului Haskell din punctul de vedere al unui specialist în limbaje formale. Este un capitol dintr-o carte de Dan Popa;
   
  +
* [https://wiki.haskell.org/Întrebarile_incepatorului Întrebările începătorului] - pentru cei care aud prima oară de Haskell;
   
== Despre Haskell dorim sa prezentam...==
 
  +
* Sintaxa și semantica limbajului Haskell împreună cu structurile sale de date și funcții, disponibile de la început (fără să le mai definiti dvs.) - [[liste]], [[arbori]], [[monade]], [[clase]] - sunt în marea lor majoritate gândite astfel încât să semene cu notațiile matematice. De fapt, sunt chiar notații matematice direct implementabile în calculator. Acest lucru a dat naștere la o pleiadă de lucrări știintifice scrise direct în „literate Haskell”. Aceste lucrari sunt simultan și:
   
* [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. Este un capitol dintr-o viitoare carte de Dan Popa. si are doar 166643 bytes. [http://www.haskell.org/sitewiki/images/9/97/De_ce_Haskell.pdf - download "De ce Haskell ?"]
 
  +
** articole de matematică superioară, de teoria categoriilor, a tipurilor, a limbajelor ș.a.m.d.;
  +
** și programe de calculator cu extensia [[.lhs]],
  +
deci pot fi rulate ca atare.
   
* [[ Intrebarile incepatorului ]] - pentru cei care aud prima oara de Haskell
 
  +
În realitate, Haskell-ul oferă o oportunitate simultană de a face cercetare, teorie, lucrări știintifice și programe, aproape concomitent. În plus, datorită puternicului sistem de inferențe de tipuri, Hakell-ul va fi ca un asistent care vă verifică - atât cât poate - corectitudinea a ceea ce realizați.
  +
Iar Haskell-ul, fiind un limbaj funcțional care permite scrierea de funcții de nivel înalt, veți putea lucra în abstract dacă doriți, rămânând totodată cu picioarele pe pământul practicii programării și al viitoarelor finanțări (deoarece de plătit se plătește mai des pentru proiecte concrete decât pentru teorie neaplicată).
   
* [[Capitole de manual]]
 
  +
* [[Capitole de manual]]. Atenție, unele versiuni de Acrobat Reader (din seria 5) au avut probleme de securitate, conform revistelor de Linux. În asemenea situații vă sugerăm să optați mai bine pentru cărțile tipărite!
   
* [http://haskell.org/hoogle Hoogle,Motorul de cautare pentru functii Haskell din diversele biblioteci se afla aici, la http://haskell.org/hoogle.] Folositi [http://haskell.org/hoogle Hoogle] pentru a invata despre noi functii de biblioteca si pentru a descifra programe. <br> http://www.haskell.org/hoogle/res/hoogle_large.png <br> Puteti cauta atat dupa denumirea functiei cat si dupa tipul acesteia. Exemple: cautati "map" sau "(a -> b) -> [a] -> [b]" ori, de ce nu, chiar tipuri cu preconditii "Ord a => [a] -> [a]". Rezultatele sunt in engleza :(
+
* [https://haskell.org/hoogle Hoogle], „motorul de cautare” pentru funcții Haskell din diversele biblioteci se afla aici, la https://haskell.org/hoogle. Folosiți [https://haskell.org/hoogle Hoogle] pentru a învăța despre noi funcții de bibliotecă și pentru a descifra programe. <br>
  +
[[File:Hoogle_logo.png|link=https://hoogle.haskell.org/]] <br> Puteți căuta atât după denumirea funcției, cât și după tipul acesteia. Exemple: cautati „[https://hoogle.haskell.org/?hoogle=map map]” sau „[https://hoogle.haskell.org/?hoogle=(a%20-%3E%20b)%20-%3E%20%5Ba%5D%20-%3E%20%5Bb%5D <nowiki>(a -> b) -> [a] -> [b]</nowiki>]”, ori, de ce nu, chiar tipuri cu precondiții (exemplu: „[https://hoogle.haskell.org/?hoogle=Ord%20a%20%3D%3E%20%5Ba%5D%20-%3E%20%5Ba%5D <nowiki>Ord a => [a] -> [a]</nowiki>]”). Din păcate, rezultatele sunt în engleză. :(
   
== Aventura lansari comunitatii Ro-Haskell ==
 
  +
==Umor, glume și anecdote despre Haskell==
* Introducerea limbajului Haskell in presa de specialitate informatica fie ca era vorba despre reviste sau carti s-a dovedit o adevarata aventura. Editurile de exemplu doar declarau ca sunt interesate de cartile despre noile limbaje dar doreau si doresc in principal sa va vanda doar carti despre HTML, WEB si C. Am primit un ajutor nesperat din partea revistei MyLinux care a initiat primul sondaj din Romania <br> [[Image:Romania.gif]]<br> privind interesul cititorilor pentru un limbaj atat de nou si productiv. Au inceput cu: Doriti un articol despre Haskell ? Ati auzit de Haskell ? - Sondajul exista inca 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, limbajul in care sunt exprimate apartine autorilor lor:
 
  +
* Haskell a fost anunțat pe 1 aprilie, iar acest lucru nu a fost intenționat. De atunci, comunitatea Haskell cultivă un umor savuros, iar ocazional, la 1 aprilie, alternează adesea știrile serioase cu mesaje pline de umor. Vedeți și paginile de umor în limba engleză de pe https://wiki.haskell.org.
** 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: "Pare interesant , din cate stiu compilatorul de Perl6 este scris in haskel. [http://www.pugscode.org/ ]"
 
* Multumesc pe aceasta cale echipei care a pus la dispozitie infrastructura site-ului si a asigurat astfel web hosting-ul (Wiki etc).
 
   
== Utilizarea ca instrument de realizare a interpretoarelor ==
 
  +
* O serie de anecdote sau elemente mai greu de demonstrat, dar de altfel vizibile pentru cititorul avizat, circulă pe seama limbajului Haskell. Ocazional apar și în carti sau cursuri, testând atenția cititorilor/ascultătorilor. [[Anecdote si afirmatii hazlii]].
*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)
 
** Atomii lexicali sunt recunoscuti de parsere specializate, deja existente in biblioteci cum sunt ParseLib si Parsec (sau altele ...)
 
** Gramaticile, inclusiv cele ambigue sunt imediat transcrise (in asa-zisa do-notatie) sub forma unor secvente de parsere corespunzatori neterminalelor gramaticii. Alternativa "|" beneficiaza de un operator special (+++ in ParseLib) Suportul teoretic, structura algebrica ce permite combinarea efectelor parserelor este Monada Parserelor.
 
** Arborii sintactici, inclusiv cei polimorfici, se transcriu imediat in Haskell folosind declaratia "data" (destinata tipurilor utilizator). Descrierea structurilor de date pentru reprezentarea arborilor sintactici se poate face pe unul - doua -trei randuri. Deoarece in Haskell la o declaratie "data" se poate adauga "deriving Show", noul tip de date va fi implicit inzestrat cu functie de afisare, pe care programatorul nu mai este obligat s-o scrie el. Simpla modificare a declaratiei "data" a arborilor modifica automat (transparent) functia de afisare. Ideal pentru realizarea prototipurilor.
 
** 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.
 
* La urma dar nu in cele din urma: Compilatorul de Haskell [http://haskell.org/ghc GHC] este el insusi scris in Haskell. Ceea ce spune tot ce este de spus despre Haskell ca limbaj (DSL) de scriere a compilatoarelor.
 
* Cum sa scrii un mic limbaj, aici[http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutorial/overview.html o implementare de Scheme.]
 
   
== Interpretoare si compilatoare disponibile - pagini in engleza ==
 
  +
* Un alt fel de umor despre Haskell îl constituie umorul involuntar. De exemplu, o discuție despre interpretoarele limbajelor - lucru pe care interlocutorul din exemplul urmator nu l-a înțeles - se poate transforma intr-un [[savuros dialog]] de genul „vorbesc împreună și se înțeleg separat”.
Exista o multime de compilatoare si interpretoare pentru Haskell si sunt disponibile gratuit: Hugs (interpretor), GHC (compilator), Hellium (mediu de instruire) si altele. O serie de distributii Linux includ interpretorul Hugs (ex: Mandrake 10.0), altele il ofera pentru download de pe site-ul distributiei (ex: PC Linux OS 9). Unele permit instalarea imediata a interpretorului sau compilatorului de Haskell (ex: Suse 9.x functioneaza cu cele doua binare din distributia Mandrake 10.0).Iar lista nu se opreste aici. Mediul de dezvoltare Kdevelopment permite si realizarea de proiecte in Haskell (are chiar sablon de proiect inclus, pregatit) dar nu uitati sa instalati compilatorul GHC. Versiuni de WinHugs sunt de asemenea disponibile pe platforma Windows. Compilatorul Haskell GHC poate, cu ajutorul unui plug-in special sa lucreze impreuna cu mediul de dezvoltare ECLIPSE ! Nici Visual Studio-ul nu e uitat, exista versiuni in care se poate lucra cu Hasekll. [http://www.haskell.org/visualhaskell/ Un instrument util lansat recent este Visual Haskell]
 
** [http://haskell.org/hugs Hugs]
 
** [http://haskell.org/ghc GHC]
 
** [[Yhc]]
 
** Kdevelop.
 
   
==Lucrari in limba romana==
 
  +
* Pe pagina cu [https://wiki.haskell.org/Întrebarile_incepatorului Întrebările începătorului] am adăugat între întrebările privitoare la I/O o povestire despre un discipol în ale Haskell-ului iluminat în momentul în care a aflat cum e definita funcția „print”. Vă las s-o descoperiți pe cont propriu.
* Descarcati slide-urile lucrarii [http://www.haskell.org/sitewiki/images/5/54/Building_an_interpreter.pdf "Cum sa construiesti un interpretor adaptabil intr-o singura zi!" de Dan Popa], de la Universitatea Bacau care descrie pas cu pas cum se poate<br> construi un interpretor pentru un mic while-language in Haskell.Autorul a <br> folosit in experimente versiunea Hugs din distributia Mandriva Linux 10.0. <br> Lucrarea a fost prezentata la Conferinta ICMI 45. [http://www.haskell.org/sitewiki/images/5/54/Building_an_interpreter.pdf Slide-urile lucrarii sunt in format pdf cu titluri in engleza dar au comentariile in limba romana.]
 
   
*Cum puteti scrie un mic asamblor adaptabil in Haskell 98:[http://www.haskell.org/sitewiki/images/2/2f/Cap8-nou-Assembler.pdf Popa, Dan; An assembler in a nutshell ] - Proceedings of the 30th annual Congress of The American-Romanian <br> Academy of Art and Sciences (ARA), Academia de Studii Economice din Moldova,<br> 2005, p. 196-198 x 2 coloane, ISBN 9975-75-313-2 Versiunea in limba romana a lucrarii, in format de capitol de carte. Bibliografia nu este inclusa dar notiunile <br> folosite sunt notiuni fundamentale de teoria categoriilor care pot fi gasite <br> in orice carte de Teoria Categoriilor.
 
  +
* Programați și zâmbiți! Unele moduri de a scrie programe sau simple expresii în Haskell sunt atât de amuzante încât merită o rubrică separată. De fapt, sunt o dovadă a flexibilității limbajului.
   
  +
* Despre Haskell se afirmă că asigură un nivel înalt de calitate și de securitate a programelor. Am adaugat o glumă despre controlul de calitate a cărei morală este că nu e de ajuns să certifici calitatea, ci mai întâi trebuie să o obții, să o produci: [[Calitatea si inspectorul cozonacilor]].
   
==Carti in pregatire==
 
  +
==Laboratorul de construcție a limbajelor==
  +
Accesați laboratorul de construcție al limbajelor, locul de unde veți putea descărca limbaje de programare produse de persoane din grupul Ro/Haskell și de comunitatea Haskell în general. [[Laboratorul de Limbaje]] (pagină în pregătire)
   
* Translatoare scrise in Haskell 98 pentru securizarea sistemelor on-line
 
  +
Aici am mutat informațiile despre construcția limbajelor: [[Laboratorul de Limbaje]]. Vedeți și noua pagină: [[ADFA]].
Gasiti in sectiunea [[Capitole de manual]] a site-ului parti din DRAFT-ul unui manual despre Haskell si folosirea lui la scrierea unor translatoare utile in securizarea sistemelor on-line. Utilizati-le ca un set de lectii de initiere in Haskell desi unele capitole necesare (monade , I/O etc) nu sunt incluse. Erata si alte sugestii de imbunatatire... vom adauga poate cu alta ocazie.
 
  +
  +
==Interpretoare, compilatoare și editoare disponibile - pagini în engleză==
  +
Există o mulțime de compilatoare și interpretoare pentru Haskell și sunt disponibile gratuit: Hugs (interpretor), GHC (compilator), Hellium (mediu de instruire) și altele. O serie de distributii Linux includ interpretorul Hugs (ex: Mandrake 10.0), altele îl oferă pentru download de pe site-ul distribuției (ex: PC Linux OS 9). Unele permit instalarea imediată a interpretorului sau compilatorului de Haskell (ex: Suse 9.x funcționează cu cele doua binare din distributia Mandrake 10.0). Iar lista nu se opreste aici. Mediul de dezvoltare Kdevelopment permite și realizarea de proiecte în Haskell (are chiar sablon de proiect inclus, pregatit) dar nu uitati să instalati compilatorul GHC. Versiuni de WinHugs sunt de asemenea disponibile pe platforma Windows. Compilatorul Haskell GHC poate, cu ajutorul unui plug-in special să lucreze împreună cu mediul de dezvoltare [https://www.eclipse.org Eclipse]! Nici Visual Studio nu e uitat, exista versiuni în care se poate lucra cu Haskell. Un instrument util lansat recent este [https://www.haskell.org/visualhaskell/Visual Haskell], dar din pacate se pare ca funcționează doar cu edițiile comerciale ale Visual Studio. Testele făcute cu Visual Studio din kit-ul gratuit, distribuibil (A. R. Kit) n-au dus la niciun succes. Motivul tehnic este probabil lipsa suportului pentru plugin-uri din ediția limitata a A. R. Kit. Iar Visual Haskell este văzut ca un plug-in Visual Studio.
  +
  +
'''EDIT''': La momentul scrierii (30 septembrie 2021), situația este mai bună decât este descrisă în paragraful anterior (păstrat ca o capsulă care ilustrează obstacolele întâmpinate de programatorii vechi de Haskell). Există acum câteva editoare de text care pot fi configurate pentru a facilita programarea în Haskell. Pentru Linux, se poate folosi [http://www.scintilla.org/SciTE.html SciTE] împreună cu [https://wiki.haskell.org/Tips_for_using_SciTE_with_Haskell aceste sfaturi] (în engleză). Pentru Windows, se poate folosi ori [http://www.textpad.com/ Textpad], ori [http://notepad-plus.sourceforge.net/ Notepad++], iar pentru macOS există [http://www.codingmonkeys.de/subethaedit/ SubEthaEdit], [https://macromates.com/ TextMate], [http://www.barebones.com/products/bbedit/ BBEdit] și [http://www.barebones.com/products/textwrangler/ TextWrangler]. Cele mai bune soluții totuși la capitolul editoare de text se află în editoarele cross-platform (multi-platformă). Printre ele enumerăm: [https://www.vim.org/ Vim] cu [https://www.vim.org/scripts/script.php?script_id=2356 Superior Haskell Interaction Mode], [https://www.gnu.org/software/emacs/ Emacs] (vedeți [https://wiki.haskell.org/Emacs această] pagină în engleză), [https://www.geany.org/ Geany], [http://www.sublimetext.com/ Sublime Text], [https://code.visualstudio.com/ Visual Studio Code] cu extensia Haskell (puteți vedea [https://www.reddit.com/r/haskell/comments/5yc7e0/have_you_tried_visual_studio_code_for_coding/ și] [https://marketplace.visualstudio.com/search?term=Haskell&target=VSCode&category=Programming%20Languages&sortBy=Relevance aceste] [https://medium.com/@dogwith1eye/setting-up-haskell-in-vs-code-on-macos-d2cc1ce9f60a pagini]), [https://kate-editor.org/ Kate], [https://atom.io/ Atom], [https://wiki.haskell.org/Yi Yi] (dezvoltat în Haskell, dar cu foarte puține facilități momentan) ș.a.m.d. Pentru proiectul [[Rodin]] este recomandat (momentan) editorul Total Edit. Aceste editoare de text pot să funcționeze oarecum ca un IDE (mediu de dezvoltare, engl. Integrated Development Environment), dar dacă se dorește un IDE adevărat? Există soluții și în acest caz. Pentru macOS există un IDE comercial numit [http://haskellformac.com/ Haskell for Mac], necesită OS X Yosemite sau mai sus. Dacă se dorește ceva open-source, se poate instala plugin de Haskell pentru produsele IntelliJ ([https://github.com/rikvdkleij/intellij-haskell aici]) sau, dacă aveți NixOS, puteți instala [http://leksah.org/ Leksah]. În 2020, s-a lansat [https://wiki.haskell.org/Haskell-language-server Haskell Language Server] care permite oricărui editor precum cele descrise anterior să aibă funcții tip IDE pentru Haskell. Instrucțiunile de instalare se află [https://github.com/haskell/haskell-language-server#configuring-your-editor aici]. Au existat câteva plugin-uri care sunt acum depreciate, precum Visual Haskell pentru Visual Studio, plugin-urile EclipseFP și Colorer pentru Eclipse, plugin-ul pentru XCode (pe macOS) etc. Au existat și alte IDE-uri acum inactive precum [https://wiki.haskell.org/Haste haste] (care a fost un IDE pentru Haskell scris în Haskell), [http://web.archive.org/web/20140715033114/https://www.cs.kent.ac.uk/projects/vital/ Vital] și [https://www.fpcomplete.com/business/haskell-center/overview/ FP Haskell Center].
  +
  +
'''Concluzia''': dacă vreți să programați în Haskell, cel mai bine configurați un editor de text (Vim, Emacs, VS Code, Atom, Sublime Text, Notepad++, SciTe etc.) sau dacă sunteți pe macOS, puteți să încercați Haskell for Mac.
  +
  +
Pentru compilatoare și interpretoare de Haskell 2010, există [https://wiki.haskell.org/GHC GHC] (Glasgow Haskell Compiler) care este compilatorul de facto pentru Haskell. Este disponibil pe majoritatea platformelor comune. Se recomandă a se folosi [https://www.haskell.org/platform/ Haskell Platform] pentru a se instala GHC împreună cu [http://www.haskell.org/cabal/ Cabal] și [http://docs.haskellstack.org/ Stack] pe Windows, macOS și Linux. Pe macOS există și Haskell for Mac, menționat mai sus. Printre compilatoare de Haskell 2010 se numără [https://wiki.haskell.org/UHC UHC] (Utrecht Haskell Compiler) și [https://github.com/Lemmih/lhc LHC] (LLVM Haskell Compiler). În cazul Haskell 98, avem [http://repetae.net/computer/jhc/ JHC] și [http://foswiki.cs.uu.nl/foswiki/Helium Helium], făcut special pentru a preda Haskell (și în consecință oferă erori mult mai informative decât cu celelalte compilatoare disponibile). Mai există alte compilere de Haskell 98, dar nu mai sunt menținute, precum [https://wiki.haskell.org/Hugs Hugs] (un interpretor mic și portabil de Haskell făcut în C, rulează pe orice mașină și are o viteză mare de interpretare, dar performanța nu se compară cu GHC de exemplu), [https://wiki.haskell.org/Yhc YHC] (York Haskell Compiler) și [https://www.haskell.org/nhc98/ nhc98].
  +
  +
==Lucrări în limba română, cronologic==
  +
  +
'''2005''':
  +
* Realizarea Interpretoarelor Adaptabile în limbajul Haskell 98 - articol de Dan Popa prezentat la Simpozionul International al Tinerilor Cercetatori ed. 2005, Chișinău, Republica Moldova (21-22 aprilie 2005)
  +
  +
* Cum puteți scrie un mic asamblor adaptabil în Haskell 98: [https://wiki.haskell.org/wikiupload/2/2f/Cap8-nou-Assembler.pdf Popa, Dan; An assembler in a nutshell ] - Proceedings of the 30th annual Congress of The American-Romanian Academy of Art and Sciences (ARA), Academia de Studii Economice din Moldova, 2005, p. 196-198 x 2 coloane, ISBN 9975-75-313-2
  +
  +
Versiunea în limba română a lucrării, în format de capitol de carte. Bibliografia nu este inclusă, dar noțiunile folosite sunt noțiuni fundamentale de teoria categoriilor care pot fi găsite în orice carte de teoria categoriilor.
  +
  +
'''2006''':
  +
* Descărcați slide-urile lucrării [https://wiki.haskell.org/wikiupload/5/54/Building_an_interpreter.pdf „Cum să construiesti un interpretor adaptabil intr-o singura zi!”] de Dan Popa, de la Universitatea Bacău care descrie pas cu pas cum se poate construi un interpretor pentru un mic while-language în Haskell.Autorul a folosit în experimente versiunea Hugs din distributia Mandriva Linux 10.0. Lucrarea a fost prezentată la Conferinta ICMI 45. Slide-urile lucrarii sunt în format PDF cu titluri în engleză, dar au comentariile în limba română. O variantă a lucrarii, tradusă în limba engleză, este acum disponibilă [https://wiki.haskell.org/wikiupload/c/c6/ICMI45-paper-en.pdf aici]. Deoarece nu a fost inclusa în volumul oficial ICMI45 (din vina responsabilului de număr), ea va fi republicată. Poate fi descărcată de [https://wiki.haskell.org/wikiupload/c/c6/ICMI45-paper-en.pdf aici].
  +
  +
'''2008''':
  +
* O prezentare PDF numită „Evaluare Modulară și Interpretare folosind Monade și Clase de Tipuri” a fost acceptată pentru secțiunea Functional Grit de la Anglo Haskell 2008. Se poate găsi [https://wiki.haskell.org/wikiupload/1/1d/Prezentare-Anglo-Haskell-2008-draft2-more-slides.pdf aici] în engleză. Titlul tradus: Modular Evaluation and Interpreters Using Monads and Type Classes by Dan Popa.
  +
  +
'''2010''':
  +
* Dan Popa, Combinatorii de analizoare sintactice – instrumentele lingviștilor pentru învăţarea asistată de calculator a limbilor străine se poate descarca de [File:http://wiki.haskell.org/wikiupload/9/96/Combinators.pdf|aici] Lucrarea a fost prezentată la Colocviul Plurilingvism și interculturalitate din 26 februarie 2010 organizat de Catedra de limba și literatura română și Grupul de cercetare interdisciplinară LOGOS, Facultatea de Litere, Universitatea „Vasile Alecsandri” din Bacău. [http://www.ub.ro/ubub/servicii/arhiva/109-colocviul-naional-cu-participare-internaional.html Programul manifestării] sau [http://www.ub.ro/ubub/images/stories/documente/Program.pdf programul manifestării in format .PDF].
  +
  +
'''2011-prezent''':
  +
  +
To be continued. Vedeți și homepage-ul realizatorului [[User:Ha$kell]]
  +
  +
==Cărți publicate în limba română==
  +
  +
Căutați cărți despre Haskell în limba româna? Sau doriți să consultați biblioteca on-line a autorilor din grupul Ro/Haskell? Dați un click pe: [[Carti publicate in limba romana]] sau pe [[Capitole de manual]]. În cursul lunii octombrie 2008 a aparut [[ Practica interpretarii monadice ]].
  +
  +
==Carti în pregătire în limba română==
  +
  +
* „Translatoare scrise în Haskell 98 pentru securizarea sistemelor on-line”
  +
Găsiți în secțiunea [[Capitole de manual]] a site-ului părți din draft-ul unui manual despre Haskell pe care am sperat să le includ intr-un volum despre scrierea unor translatoare utile în securizarea sistemelor on-line. Utilizați-le ca un set de lecții de inițiere în Haskell, deși unele capitole necesare (monade, I/O etc) nu sunt incluse. În final am inclus o parte din ele în volumul „[[Introducere in Haskell 98 prin exemple]]”.
 
 
* O introducere agreabila in Haskell traducerea celebrului [http://haskell.org/tutorial/haskell-98-tutorial.pdf "A Gentle Introduction In Haskell ] - o lucrare clasica pe care incercam sa v-o oferim in traducere. <br>
+
* „O introducere agreabil în Haskell” - traducerea celebrului [https://haskell.org/tutorial/haskell-98-tutorial.pdf „A Gentle Introduction In Haskell”] - o lucrare clasică pe care încercam v-o oferim în traducere.
Vestea proasta: Datorita felului cum se puncteaza asemenea activitati la Universitatea Bacau, impartind punctajul la numarul autorilor si netinind cont de valoarea cartii sau de faptul ca versiunea romaneasca a unei carti libere trebuie integral rescrisa probabil acest proiect va fi amanat ca fiind neprioritar. Pacat :(
+
Dacă știți limba franceză mai bine decât limba engleză, descărcați versiunea de [https://wiki.haskell.org/wikiupload/5/5e/GentleFR.pdf aici], produs al unei echipe din grupul Fr/Haskell, document pe care l-am pus în format [https://wiki.haskell.org/wikiupload/5/5e/GentleFR.pdf PDF] după o ultima corectură.
   
  +
* [[Practica interpretarii monadice]] - Cuprinde lucrari de laborator aferente cursului de Limbaje Formale și Automate de la Universitatea Bacau, extrase din laboratoarele anului curent (si în viitor, ale altor ani). Volumul își propune să prezinte practic scrierea unui interpretor pentru un mic while-language în Haskell. Tehnicile prezentate sunt utile de asemenea la citirea/achiziționarea de date cu structuri și substructuri. Nu am mai adaugat: [[O mica istorie a prelucrarii datelor]]. Cartea este (cel puțin a fost la data apariției) un unicat, la nivel mondial mai existând doar vreo 4-5 articole pe aceasta temă — și neexistând nicio altă carte — pe glob (la data scrierii acestei note: 18 dec. 2009).
   
== Distributii Linux de Download apreciate ==
 
  +
* [[ ... . ]] Titlu rezervat. O carte despre producerea interpretoarelor și/sau compilatoarelor de limbaje imperative folosind monade și funcții pentru combinarea efectelor acestora. Am vrut s-o numesc „Transformers - The Royal Way of Imperative Language Construction”, dar nu găsesc un echivalent în limba română. Va detalia dezvoltarea proiectului Rodin, la care am lucrat în saptamanile precedente (prima jumatate a lui iulie 2008). Date exacte se găsesc pe pagina proiectului [[Rodin]]. S-ar putea să se numească doar „The Power of Transformers” sau chiar „[[Transformers]]”. Nu dați click - nu este pagina gata.
Lista urmatoare nu este nici pe departe completa.
 
* Mandrake 10.0 - include Hugs in format binar, gata de a fi instalat. In plus
 
este si o buna platforma pentru laboratorul de Sisteme de Calcul cu Linux si nici nu solicita PC-uri puternice.
 
* Mandriva 10.2 - desi nu mai include Hugs puteti folosi binarele Hugs de la distributia de mai sus (Mandrake 10.0). Nu uitati sa instalati si biblioteca libreadline.so.4 de pe CD-ul 1.
 
* Suse 9.x - am putut instala la fel de usor Hugs oferit impreuna cu Mandrake 10.0. [http://www.haskell.org/sitewiki/images/b/b1/Back-End.pdf Cititi la inceputul acestui capitol.]
 
* PC Linux OS 9 - cu riscul de a gresi afirm ca Hugs era disponibil ca pachet de programe downloadabile de pe site-ul distributiei.
 
Exista si alte distributii Linux care includ Hugs sau mai puternicul GHC.
 
De asemenea exista portari profesionale pe Solaris.
 
   
== Biblioteca despre Haskell, Hugs si Limbaje Formale On Line ==
 
  +
==dRaftul personal==
Nici nu va inchipuiati cate materiale exista pe Internet. Voi incerca sa intretin o lista de carti si articole disponibile pe Internet, in format PDF sau macar sa indic pe cele mai valoroase.
 
  +
[[dRaftul personal]] va fi o colecție de cărți libere, electronice, pe care sper s-o construim împreună, din variantele (eventual '''pre-release''') ale cărților din domeniul stiintelor informatice. Greșelile de tipar sunt oferite gratuit. :) Vedeți și cărțile libere din zona [[User:Ha$kell]].
*[http://haskell.org/tutorial/haskell-98-tutorial.pdf "A Gentle Introduction In Haskell ] O lucrare celebra scrisa de o echipa absolut remarcabila. Daca nume ca Los Alamos Lab. si Yale Univ. va spun ceva :)
 
* YAHT - Yet an other Haskell Tutorial [http://www.cs.utah.edu/~hal/docs/daume02yaht.pdf - Download YAHT ] Incercati si la [http://darcs.haskell.org/yaht/yaht.pdf http://darcs.haskell.org/yaht/yaht.pdf]
 
* [http://cvs.haskell.org/Hugs/downloads/hugs.pdf Despre Hugs la http://cvs.haskell.org/Hugs/downloads/hugs.pdf]
 
* Grammars and Parsing de Johan Jeuring si Doaitse Swierstra a fost/este disponibila la:[http://lampwww.epfl.ch/~michelou/links/compiler/files/MAIN.pdf - Download! Cititi din ea neaparat capitolele urmatoare: ]
 
   
3.1 The type 'Parser' de la pagina 47
 
  +
==Traduceri și... voluntariat==
3.2 Elementary parsers de la pagina 49
 
  +
Grupul Ro/Haskell va oferă șansa să vă afirmați ca traducator, ceea ce, (dacă sunteți filolog) se consideră activitate profesională. Vedeți [[Proiecte de traduceri]]. Contactați-l pe Dan la adresa de e-mail cunoscută (e pe site într-o prezentare .PDF) sau la telefonul cunoscut la Universitate și stabilim detaliile și... răsplata. Special pentru filologii din grupul de cercetare LOGOS, ar putea face așa ceva cu studenții lor?
3.3 Parser combinator de la pagina 52
 
  +
si mai departe... inclusiv
 
  +
==Distributii Linux de Download apreciate==
5.1 Finite state automata de la pagina 85
 
  +
Lista următoare nu este nici pe departe completă. [[Distributii Linux de Download apreciate]] de utilizatorii de Haskell. De ce? Doar însuși Linux-ul este un enorm mediu de programare!
si urmatoarele
 
  +
  +
==Mini-bibliotecă despre Haskell, Hugs, GHC și limbaje formale online ==
  +
Nici nu vă închipuiți câte materiale există pe Internet. Voi încerca să întrețin o listă de cărți și articole disponibile pe Internet, în format PDF sau măcar să indic pe cele mai valoroase. [[Ro/Haskell/Mini-biblioteca-de-Haskell]]
  +
  +
==Merită să citiți==
  +
Se spune despre cărți ca ajung să fie citite în întregime destul de rar. Despre o carte se spune că este bună dacă ea conține ceea ce știi deja. Altfel n-o poți aprecia. Așa că o vei citi, probabil, tot selectiv. [[Ce merita sa cititi]] aflați de aici. Lista va trebui completată, au aparut multe materiale noi.
  +
  +
==De-ale studenților și întrebarile incepatorului==
  +
Încercăm să reflectam aici probleme cu care se confrunta studenții nostri. Să publicăm un sfat, un exemplu sau orice altceva ce i-ar putea ajuta.
  +
Citiți și: [[ Intrebarile incepatorului ]]
  +
  +
Volumul [[Practica interpretarii monadice]] care (împreună cu un istoric al domeniului) și alte capitole a fost prezentat ca teza de doctorat pe 24 noiembrie 2009 va avea o serie de [[Întrebari despre combinatorii de parsere]] pe această pagină separată.
  +
  +
Dacă ați ales cursul optional numit [[Programare functionala]] începeți studiul de aici: [[Programare functionala]]
  +
  +
Dacă sunteți interesați de cursul de Limbaje formale, dați click pe [[Ro/Haskell/Limbaje formale]]. Programa de curs va fi aici.
  +
  +
Dacă sunteți interesați de Laboratorul de Limbaje formale dați click pe [[Laboratorul de Limbaje]]. Atenție, este o pagină destinată celor avansați în construcția de limbaje. Ceilalți vor începe prin a citi manualul. Știți zicala: când nimic nu funcționează, ei bine... citește manualul. Laboratoarele din 2006 le-am strans în cartea [[Practica interpretarii monadice]], care a aparut în octombrie 2008. Faceți liste de comenzi pentru ea, pentru a obtine un preț mai bun de la editor.
  +
  +
Dacă sunteți interesați de cursul de Tehnici de compilare dati click pe [[Ro/Haskell/Tehnici de compilare]]. Programa de curs va fi aici. Până la apariția cărții de [[Compilatoare in Haskell]], citiți despre [[Constructia Compilatoarelor Folosind Flex si Bison]]. Scuze că nu avem mai mult deocamdată.
  +
  +
Dacă sunteți interesați de cursul de Arhitectura sistemelor de calcul Linux - iar Hugs și GHC ruleaza și pe Linux, dați click pe... [[Ro/Haskell/Arhitectura sistemelor de calcul Linux]].
  +
  +
[[Cum se rateaza un examen]]
  +
Altele...
  +
  +
==Prezentări==
  +
PPT-uri numai bune de vizionat. Dați click dacă sunt roșii: [[PPT in ENgleza]], [[PPT in Romana]]. Deocamdată căutați-le la Bazar. [[O colectie de link-uri]] variate, utilă într-o lume în care până și Google este manipulat prin schimbarea ordinii apariției răspunsurilor. Iată și Târgul „Link-uri de vara 2008” [[O colectie de link-uri variate - 2008]] Această secțiune de prezentări este în dezvoltare. Vedeți și prezentările din pagina [[User:Ha$kell]].
  +
  +
==Ce n-am publicat aici... încă==
  +
  +
La o revizuire a site-ului din vara lui 2007, am gasit ca Ro/Haskell ar putea fi încă îmbunătățit. O sumedenie de lucruri ar putea fi adaugate, de la simple explicații pentru începători la colecții de link-uri catre articole și cărți celebre pentru avansați. În cazul în care căutați pe Ro/Haskell versiuni românești ale unor anumite lucrări sau anumite subiecte, uitați-vă și pe această pagină, macar să știți să... nu mai cautati.[[Ce n-am publicat aici... inca]]
  +
  +
==Biblioteci unde am trimis (si găsiți) carti despre Haskell==
  +
Deoarece cărțile de Haskell s-au publicat în ediții mai mici decat cele de C sau C++ va indicam [[Biblioteci]] unde le puteti gasi.
  +
  +
==Firme care folosesc Haskell și doresc să-și prezinte activitatea==
  +
Dorim să asiguram prin viitoarea pagina [[Firme]] o legătură intre cei ce folosesc Haskell și cei care învață Haskell. O cautare pe Internet m-a convins ca cererea de programatori de Haskell pentru piața '''externă''' este în crestere. Dar abia de la apariția unor cărți cum este [http://book.realworldhaskell.org/ Real World Haskell] ne așteptăm la o creștere mai rapidă a numărului de aplicații. De asemenea, succesul unor proiecte de 3D Game Design ([[frag]]) a propulsat Haskell-ul și în atentia fabricanților de jocuri video, cu atât mai mult cu cât el poate fi folosit usor la implementarile inteligenței artificiale ale personajelor. (Haskell fiind un urmas al Lisp-ului și ML-ului). Citiți despre proiect și descărcați materialele sale, o carte și un motor de de Quake în surse de pe pagina [[frag]] .
  +
  +
S-a lansat Industrial Haskell Group [https://industry.haskell.org/ https://industry.haskell.org/] cu scopul de a sprijini aplicatiile industriale ale Haskell-ului.
  +
  +
'''UPDATE''': În noiembrie 2008 s-a lansat prima ediție de [http://book.realworldhaskell.org/ Real World Haskell] și se poate citi online la [http://book.realworldhaskell.org/read/ această adresă].
  +
  +
==Proiecte==
  +
[[Proiecte]] la care participă membri ai comunității Ro/Haskell. Pagină în dezvoltare. Deocamdată neactualizată, deși proiecte există. Începand cu cele ale studenților... Vedeti și [[Laboratorul de limbaje]] și [[Ph.D area]] când vor fi gata.
  +
  +
==PhD. area==
  +
O zona dedicată problematicii doctoratelor, indicațiilor de realizare a tezelor și proiectelor ș.a.m.d. Se va numi [[Ph.D area]].
  +
  +
==Research area==
  +
Descoperirea faptului că din 2007-2008 posedăm rezultate de nivel ISI (apreciere prin comparație cu nivelul altor reviste care au publicat pe aceeași temă!) în domeniul Interpretării și Compilarii Monadice, a Construcției Modulare a Limbajelor, a Arborilor Modulari și Semanticilor Monadice Modulare, deja testate prin proiectul [[Rodin]] și oferite spre prezentare la [[AngloHaskell2008]] apoi validate matematic prin publicare - 2009, precum și invitațiile din străinatate și interesul unor [[Firme Europene]] ne-au facut să realizam pagina [[Research area]].
  +
  +
==Avertismente și condiții de folosire==
  +
  +
<p class='previewnote'>
  +
Atentie: Acest site este dedicat comunității Haskell, activității acesteia, încurajării folosirii limbajului Haskell și a altor proiecte conexe. În niciun caz și sub nicio formă conținutul acestor pagini nu poate fi folosit pentru blocarea activității unei persoane, interzicerea unor cursuri, atacarea unei persoane care a publicat știri reale, hărțuire, ostracizare, calomnie și alte metode de atac nejustificat la persoană care pot produce blocaje proiectelor noastre. Știrile sunt verificate și rămân în arhivă. Nu mai faceți presiuni pentru ștergerea știrilor despre șefii care ne-au pus bețe în roate, sunt inutile. Vedeți cazul [[Anexa]]. </p>
  +
  +
<p class='previewnote'>
  +
Atenție: Trimițând articole și date personale pentru publicare pe acest site al comunității Ro/Haskell, acceptați stocarea datelor dvs. pe servere care nu sunt în Uniunea Europeană și nici macar în Eurasia! Accesul la copiile acestui site oferite de alte servicii proxy (diferite de site-ul original [www.haskell.org]) nu vă garantează nici acuratețea conținutului, nici calitatea de 'virus-free' a materialelor. </p>
  +
  +
<p class='previewnote'>
  +
Verificați întotdeauna fișierele descărcate: PDF-urile pot conține uneori cod arbitrar, iar fișiere .doc macroviruși. Luați-vă toate măsurile de precauție posibile. Detectarea faptului că un program este virus este o problemă algoritmic nedecidabilă, deci nu se știe niciodată. Numai plain-text-ul nu contine viruși. </p>
  +
  +
<p class='previewnote'>
  +
Materialele oferite de Ro/Haskell sunt deocamndată oferite la... [[Calitate Ro/Haskell]] sau pur și simplu „As It Is”. Firește că facem eforturi pentru a îmbunătăți continuu calitatea, dar în lipsa unei plăți din partea dumneavoastră nu putem oferi decât calitate cu garanții la nivelul minim cerut de legislație, și '''fără garanție de potrivire''' cu un scop sau altul pe care l-ați putea avea în vedere. Din fericire, deoarece Haskell este un limbaj universal extrem de puternic și flexibil, șansele unei potriviri sunt destul de mari în realitate.</p>
  +
  +
<p class='previewnote'>
  +
Atentie: Adresele de e-mail oferite de Ro/Haskell sunt oferite exclusiv pentru: activitate didactică, promovarea limbajului Haskell și a platformelor software pe care rulează acesta, training-ului asociat și a chestiunilor legate de activitatea comunitatii [[Ro/Haskell]] și eficiența sau blocajele care intervin în aceste activități. Introducerea acestor adrese în baze de date comerciale și de uz comercial va fi tratata după caz ca SPAM (în ciuda notițelor de genul: acest mesaj nu este spam etc.) sau ca încălcare a condițiilor de utilizare a site-ului stabilite de către autorii acestuia, consecințele conform legii mergând până la confiscarea aparaturii pe care rulați baza de date. De asemenea, riscați pierderea tuturor clienților din rețele mari ca Yahoo deoarece vom marca aceste mesaje ca SPAM, în mod repetat. </p>
  +
  +
==Drepturi de autor==
  +
Paginile web depuse pe acest site sunt proprietatea autorilor lor, care au contribuit cu aceste materiale oferind pentru copiile de pe acest site dreptul de folosire sub o licență permisivă: https://www.haskell.org/haskellwiki/HaskellWiki:Copyrights. Materialele stocate pe servere externe acestui site și legate prin link-uri către alte site-uri se supun licentelor de pe serverele de origine! Cărțile și capitolele de cărți aparțin editorilor și autorilor și nu pot fi multiplicate fără acordul acestora. (Faceți link-uri la ele!)
  +
  +
În acelasi timp, conform legii 8/1996 din România aveți obligația de a cita numele autorilor sau, în lipsa numele de autor al acestora, în cazul ca nu aveți decât acest nickname. (Conform legii, autorul decide sub ce formă ajunge opera la cunoștința publicului, inclusiv cu ce semnatură de autor sau sub ce pseudonim.)
  +
Exemplu: Realizatorul acestei pagini Dan Popa trebuie citat ori ca Dan Popa, ori ca Ha$kell sau [[User:Ha$kell]] de pe www.haskell.org.
  +
Exemplu de citare corecta [[Fr/Haskell]].
  +
  +
==Bazare și Târguri cu link-uri==
  +
  +
[[O colectie de link-uri]] variate, utilă intr-o lume în care până și Google este manipulat prin schimbarea ordinii apariției răspunsurilor. Cea dintâi pe care am strâns-o. (prin 2007?)
  +
  +
[[O colectie de link-uri variate - 2008]] - am extras pentru dumneavoastră. Alegerea link-urilor importante (după parerea noastră) n-o poate face Google, ci o minte umană care știe ce să vă propună.
  +
  +
[[O colectie de link-uri din 1 noiembrie 2008]]. Am numit-o Târgul mic de Haskell din noiembrie 2008.
  +
  +
[[Links/O colectie de link-uri/iunie 2009]] Am numit-o Târgul mic de Haskell din iunie 2009.
  +
  +
[[Links/O colectie de link-uri/iulie 2009]] Am numit-o Târgul mic de Haskell din iulie 2009.
  +
  +
La târg ca la târg. Alegeți ce vă place din ceea ce se oferă. Dacă ajungeți prea târziu, s-ar putea chiar să nu mai găsiți unele lucruri.
  +
  +
==Anticariat==
  +
[[Anticariat Ro/Haskell]] Încercam să oferim celor interesați cărțile pe care le-am citit deja. Dacă aveți cărți de Haskell disponibile, nu ezitați să le anunțați aici. Se pot trimite prin poștă ca „imprimate”, în plic având colțul tăiat, eventual cu ramburs.
  +
  +
==Hardware==
  +
Interesul de a rula Haskell pe diferite feluri de hardware, a atins cote înalte.
  +
Așa cum am mai spus la cursul de Limbaje Formale sau la cel de Compilatoare, un limbaj cum este Haskell în care (din cauza felului cum este definit lambda calculul) același calcul se poate începe din mai multe locuri și chiar simultan, în paralel, va fi unul dintre limbajele care se pretează la rulare pe mașini intensiv paralele. Încercam să înființăm o pagina de [[Secrete hardware - software]] pentru utilizatorii de Haskell și cei care vor naviga pe acest site.
  +
Știați de exemplu că puteți folosi vechi monitoare de maxim 1024 x 768 la rezolutia 1280 x 768 neinclusa în manual, pentru a vedea mai bine programele Haskell cu linii lungi ?
  +
  +
==Imagini din expoziții==
  +
[[Imagini]] care vor constitui o colectie. În dezvoltare...
  +
----
  +
==Topul lucrărilor practice==
  +
[[Primul Top]] al lucrărilor ce merita citite de practicieni. În dezvoltare...
  +
----
  +
==Universități din România unde se predă Haskell==
  +
Găsiți pe pagina: [[Oameni si cursuri din Romania]].
  +
  +
Vechea pagina, neterminată este aici: [[Universitati la care puteti urma cursuri de Haskell si programare functionala.]]
  +
  +
Dragi colegi care predați Haskell, nu ezitați să vă prezentați activitatea!
  +
----
  +
  +
==C++ versus Haskell==
  +
[[Intrebari despre asemanari, deosebiri și comparatii intre limbajele]]
  +
  +
Eventual... [[Alte intrebari puse des.]]
  +
----
  +
==Jocuri și concursuri==
  +
Mai mult sau mai putin legate de activitatea comunității. [[Jocuri]].
  +
Vedeți și: [[Ro/Haskell/OpenGL]]
  +
  +
==Haskell pentru ingineri de software și hardware==
  +
[[Haskell pentru ingineri]]
  +
  +
==Haskell, muzica și baletul==
  +
De catva timp, numele Haskell il gasesc asociat cu informatii despre arta, mai ales despre balet. Va urma o pagină despre Haskell și arte sau, de ce nu, despre prelucrarea informației artistice. Deja cu programe Haskell s-a prelucrat muzică. Pe când și la noi alte proiecte? Reveniți când vom completa [[Haskell, Muzica și Baletul]], iar acest link va fi albastru. Sau parcurgeți [[O colectie de link-uri variate - 2008]] de la Târgul „Link-uri de vară 2008”
  +
  +
'''Muzica monadelor'''
  +
Muzică gratuită, disponibila pentru download (cu unele restricții pentru redifuzare) găsiți pe pagina [[Music of monads]] - traducerea: [[Muzica monadelor]], mulțumită echipei muzicienilor care au colaborat cu Jamendo.
  +
Ascultați [[Muzica monadelor]].
  +
  +
==Navigator==
  +
  +
Navigatorule, poți da click cu succes pe link-urile roșii! Celelalte sunt doar pagini din viitor, încă neconstruite. :)
  +
  +
[[Intrebarile incepatorului]], [[Capitole de manual]],[[Practica interpretarii monadice]],
  +
[[Stiri Ro/Haskell]],[[Tipuri polimorfice]], [[Clase de tipuri]], [[Quicksort]],
  +
[[Anecdote și afirmatii hazlii]],[[savuros dialog]], [[Programati și zambiti!]],
  +
[[Opinia editorului revistei MyLinux]], [[Laboratorul de Limbaje]] (<-Pagina în pregatire.),
  +
[https://haskell.org/hugs Hugs] <- '''Downloadul interpretorului Hugs''' , [https://haskell.org/ghc GHC] <- '''Downloadul compilatorului GHC''',
  +
[https://www.haskell.org/wikiupload/5/54/Building_an_interpreter.pdf „Cum să construiesti un interpretor adaptabil intr-o singura zi!” de Dan Popa],
  +
[[Carti publicate în limba romana]], [[dRaftul personal]], [[Proiecte de traduceri]],
  +
[[Distributii Linux de Download apreciate]], de utilizatorii de Haskell.
  +
[[Ce merita sa cititi]], [https://www.edusoft.ro/detalii.php?id=81 „Introducere în Haskell 98 prin exemple” publicat la EduSoft.],
  +
Mini bibliografie despre [[Programare functionala]], [[Ce n-am publicat aici... inca]],
  +
[[Proiecte]], [[O colectie de link-uri]], Înca [[O colectie de link-uri variate - 2008]],
  +
[[Anticariat Ro/Haskell]], Viitoarea colectie de [[Imagini]], [[Primul Top]], al lucrarilor.
  +
[[Universitati la care puteti urma cursuri de Haskell si programare functionala.]],
  +
[[Intrebari despre asemanari, deosebiri si comparatii intre limbajele]], Eventual...
  +
[[Alte intrebari puse des.]], [[Haskell, Muzica și Baletul]], [[Rodin]],
  +
[[Category:Ro]], [https://www.haskell.org/haskellwiki/Category:Ro Categories:Ro].
  +
  +
==Bannere==
  +
Bannere necomerciale, educationale și culturale, aici: [[Ro/Haskell/Banners]]
  +
  +
==Umor==
  +
  +
Am avut ocazia să citesc cea mai... indescriptibilă în cuvinte pagina provenita prin traducere - presupun ca automată - din volumul [[Gentle]]. Pagina a fost atribuită spre citire domnului student Pargaru căruia îi recunoaștem meritele de umorist Haskell, în echipă cu un translator automat. Citiți: [[Umor Haskell mort-copt]]. Textul original este la pagina 35 în [[Gentle]].
  +
  +
Pagina indexată la indexul [[Category:Ro]] [https://www.haskell.org/haskellwiki/Category:Ro Categories:Ro]
  +
  +
==Utilizare, istoric==
  +
  +
Contoarele indicând numarul de utilizări ale paginilor site-ului continuă să creasca. Iată mai jos câteva momente istorice și numărul de accese înregistrat până la anumite date.
  +
  +
14 mai 2009 - This page has been accessed 18,653 times. This page was last modified 18:29, 12 May 2009
  +
  +
28 aprilie 2009 - This page has been accessed 18,158 times. This page was last modified 06:21, 14 April 2009
  +
  +
14 aprilie 2009 - This page has been accessed 17,832 times. This page was last modified 06:15, 14 April 2009
  +
  +
23 martie 2009 - This page has been accessed 16,981 times. This page was last modified 13:12, 18 December 2008.<br>
  +
  +
22 iunie 2009 - This page has been accessed 19,754 times.
  +
  +
20 iulie 2009 - This page has been accessed 20,494 times. This page was last modified 10:33, 23 June 2009.
  +
  +
29 iulie 2009 -This page has been accessed 20,752 times. This page was last modified 19:43, 29 July 2009.
  +
  +
31 august 2009 - This page has been accessed 21,520 times.
  +
  +
7 oct 2009 - This page has been accessed 22,222 times. This page was last modified 21:28, 7 October 2009
  +
  +
12 dec 2009 - This page has been accessed 24,513 times.
  +
  +
Cândva intre 12 dec 2009 și 11 ian 2010 contorul de accese la aceasta pagină a trecut de totalul de 25000 de accese.
  +
  +
26 apr 2010: Contorul de accese la aceasta pagina a trecut de totalul de 27050 de accese.
  +
  +
9 Feb 2011. - This page has been accessed 35,588 times.
  +
  +
13 Apr 2011 - This page has been accessed 36,191 times.
  +
  +
13 Iunie 2011 - This page has been accessed 37,061 times.
  +
  +
7 nov 2011 - This page has been accessed 40,863 times.
  +
  +
24 July 2013 - This page has been accessed 68,881 times.
  +
  +
30 Septembrie 2021 - Între timp s-a scos funcția aceasta din MediaWiki, deci nu avem cum să știm câți au văzut această pagină. Sigur a trecut de 70000 accesări, posibil 80-90000 sau chiar 100000 accesări (totuși, între 07.2013 și 09.2021 este o distanță mare).
 
 
  +
----
  +
[https://www.haskell.org/haskellwiki/Ro/Haskell <= Înapoi la începutul paginii principale Ro/Haskell. ]<br><br>
  +
[https://www.haskell.org/haskellwiki/Intrebarile_incepatorului <'''-''' Înapoi la Întrebarile incepatorului Ro/Haskell. ]
  +
----
   
</center>
 
  +
https://www.haskell.org/wikiupload/4/4c/Header2-RoH.gif
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la inceputul paginii principale Ro/Haskell ]
 
  +
  +
Din '''12 mai 2009 ''' Ro/Haskell se înscrie între organizațiile semnatare ale [https://www.capetowndeclaration.org/list_signatures?indorg=all&keyword=Romania” Open Education Declaration”].

Latest revision as of 16:59, 30 September 2021

Haskell - Un limbaj funcțional pur
Hartă site.

Haskell este limbajul funcțional succesor al LISP-ului, Scheme-ului și ML-ului!
Cel mai productiv limbaj funcțional! Limbajul folosit de autorii limbajului Perl 6 și ales de echipa Linspire, utilizat la inteligență artificială, prelucrări mulțimedia, rețele Petri, programare funcțională, în Robotică, sinteză de circuite electronice, motoare de baze de date, cercetare, producție de software „type safe”, producție de limbaje (DSL-uri, cum este Limbajul Pseudocod Rodin), proiectare automată de scheme electronice, analize statistice și financiare (bancare), grafica 3D...
V-am stârnit curiozitatea? Citiți: Întrebările începătorului. Am adăugat răspunsuri noi (dec. 2009-16 ian. 2010). Înformațiile pentru studenți sunt la punctul 18, începeți de acolo, iar link-urile de descărcare în secțiunea 8. sau la pagina despre lucrări de licență. Celor interesați de OpenGL le recomandăm noua pagină Ro/Haskell/OpenGL


Nota: Pagina cursului de Fundamentele Programării o puteți găsi și pe harta site-ului de sus sau dând click pe Ro (în josul paginii).

Cuprinsul paginii Ro/Haskell:


Știri

https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2014
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2013
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2012
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2011
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2010
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2009
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2008
https://www.haskell.org/haskellwiki/Stiri_Ro/Haskell-2007

Aventura lansării comunității Ro/Haskell

Începuturile folosirii limbajului Haskell în Romania numai zile ușoare și simple n-au fost. Citiți Aventura lansarii comunitatii Ro/Haskell.

Introducere

Un răspuns la întrebarea „Ce este Haskell și la ce ne-a folosit și ne foloseste el?” găsiți pe pagina Ro/Haskell/Introducere. Ultima carte introductivă aparută: O mica introducere in Haskell 98. Precedenta carte introductivă aparută: Introducere in Haskell 98 prin exemple.

Despre Haskell dorim să prezentam... (Hoogle și nu numai)

  • De ce Haskell? - o prezentare a limbajului Haskell din punctul de vedere al unui specialist în limbaje formale. Este un capitol dintr-o carte de Dan Popa;
  • Sintaxa și semantica limbajului Haskell împreună cu structurile sale de date și funcții, disponibile de la început (fără să le mai definiti dvs.) - liste, arbori, monade, clase - sunt în marea lor majoritate gândite astfel încât să semene cu notațiile matematice. De fapt, sunt chiar notații matematice direct implementabile în calculator. Acest lucru a dat naștere la o pleiadă de lucrări știintifice scrise direct în „literate Haskell”. Aceste lucrari sunt simultan și:
    • articole de matematică superioară, de teoria categoriilor, a tipurilor, a limbajelor ș.a.m.d.;
    • și programe de calculator cu extensia .lhs,

deci pot fi rulate ca atare.

În realitate, Haskell-ul oferă o oportunitate simultană de a face cercetare, teorie, lucrări știintifice și programe, aproape concomitent. În plus, datorită puternicului sistem de inferențe de tipuri, Hakell-ul va fi ca un asistent care vă verifică - atât cât poate - corectitudinea a ceea ce realizați. Iar Haskell-ul, fiind un limbaj funcțional care permite scrierea de funcții de nivel înalt, veți putea lucra în abstract dacă doriți, rămânând totodată cu picioarele pe pământul practicii programării și al viitoarelor finanțări (deoarece de plătit se plătește mai des pentru proiecte concrete decât pentru teorie neaplicată).

  • Capitole de manual. Atenție, unele versiuni de Acrobat Reader (din seria 5) au avut probleme de securitate, conform revistelor de Linux. În asemenea situații vă sugerăm să optați mai bine pentru cărțile tipărite!
  • Hoogle, „motorul de cautare” pentru funcții Haskell din diversele biblioteci se afla aici, la https://haskell.org/hoogle. Folosiți Hoogle pentru a învăța despre noi funcții de bibliotecă și pentru a descifra programe.

Hoogle logo.png
Puteți căuta atât după denumirea funcției, cât și după tipul acesteia. Exemple: cautati „map” sau „(a -> b) -> [a] -> [b]”, ori, de ce nu, chiar tipuri cu precondiții (exemplu: „Ord a => [a] -> [a]”). Din păcate, rezultatele sunt în engleză. :(

Umor, glume și anecdote despre Haskell

  • Haskell a fost anunțat pe 1 aprilie, iar acest lucru nu a fost intenționat. De atunci, comunitatea Haskell cultivă un umor savuros, iar ocazional, la 1 aprilie, alternează adesea știrile serioase cu mesaje pline de umor. Vedeți și paginile de umor în limba engleză de pe https://wiki.haskell.org.
  • O serie de anecdote sau elemente mai greu de demonstrat, dar de altfel vizibile pentru cititorul avizat, circulă pe seama limbajului Haskell. Ocazional apar și în carti sau cursuri, testând atenția cititorilor/ascultătorilor. Anecdote si afirmatii hazlii.
  • Un alt fel de umor despre Haskell îl constituie umorul involuntar. De exemplu, o discuție despre interpretoarele limbajelor - lucru pe care interlocutorul din exemplul urmator nu l-a înțeles - se poate transforma intr-un savuros dialog de genul „vorbesc împreună și se înțeleg separat”.
  • Pe pagina cu Întrebările începătorului am adăugat între întrebările privitoare la I/O o povestire despre un discipol în ale Haskell-ului iluminat în momentul în care a aflat cum e definita funcția „print”. Vă las s-o descoperiți pe cont propriu.
  • Programați și zâmbiți! Unele moduri de a scrie programe sau simple expresii în Haskell sunt atât de amuzante încât merită o rubrică separată. De fapt, sunt o dovadă a flexibilității limbajului.
  • Despre Haskell se afirmă că asigură un nivel înalt de calitate și de securitate a programelor. Am adaugat o glumă despre controlul de calitate a cărei morală este că nu e de ajuns să certifici calitatea, ci mai întâi trebuie să o obții, să o produci: Calitatea si inspectorul cozonacilor.

Laboratorul de construcție a limbajelor

Accesați laboratorul de construcție al limbajelor, locul de unde veți putea descărca limbaje de programare produse de persoane din grupul Ro/Haskell și de comunitatea Haskell în general. Laboratorul de Limbaje (pagină în pregătire)

Aici am mutat informațiile despre construcția limbajelor: Laboratorul de Limbaje. Vedeți și noua pagină: ADFA.

Interpretoare, compilatoare și editoare disponibile - pagini în engleză

Există o mulțime de compilatoare și interpretoare pentru Haskell și sunt disponibile gratuit: Hugs (interpretor), GHC (compilator), Hellium (mediu de instruire) și altele. O serie de distributii Linux includ interpretorul Hugs (ex: Mandrake 10.0), altele îl oferă pentru download de pe site-ul distribuției (ex: PC Linux OS 9). Unele permit instalarea imediată a interpretorului sau compilatorului de Haskell (ex: Suse 9.x funcționează cu cele doua binare din distributia Mandrake 10.0). Iar lista nu se opreste aici. Mediul de dezvoltare Kdevelopment permite și realizarea de proiecte în Haskell (are chiar sablon de proiect inclus, pregatit) dar nu uitati să instalati compilatorul GHC. Versiuni de WinHugs sunt de asemenea disponibile pe platforma Windows. Compilatorul Haskell GHC poate, cu ajutorul unui plug-in special să lucreze împreună cu mediul de dezvoltare Eclipse! Nici Visual Studio nu e uitat, exista versiuni în care se poate lucra cu Haskell. Un instrument util lansat recent este Haskell, dar din pacate se pare ca funcționează doar cu edițiile comerciale ale Visual Studio. Testele făcute cu Visual Studio din kit-ul gratuit, distribuibil (A. R. Kit) n-au dus la niciun succes. Motivul tehnic este probabil lipsa suportului pentru plugin-uri din ediția limitata a A. R. Kit. Iar Visual Haskell este văzut ca un plug-in Visual Studio.

EDIT: La momentul scrierii (30 septembrie 2021), situația este mai bună decât este descrisă în paragraful anterior (păstrat ca o capsulă care ilustrează obstacolele întâmpinate de programatorii vechi de Haskell). Există acum câteva editoare de text care pot fi configurate pentru a facilita programarea în Haskell. Pentru Linux, se poate folosi SciTE împreună cu aceste sfaturi (în engleză). Pentru Windows, se poate folosi ori Textpad, ori Notepad++, iar pentru macOS există SubEthaEdit, TextMate, BBEdit și TextWrangler. Cele mai bune soluții totuși la capitolul editoare de text se află în editoarele cross-platform (multi-platformă). Printre ele enumerăm: Vim cu Superior Haskell Interaction Mode, Emacs (vedeți această pagină în engleză), Geany, Sublime Text, Visual Studio Code cu extensia Haskell (puteți vedea și aceste pagini), Kate, Atom, Yi (dezvoltat în Haskell, dar cu foarte puține facilități momentan) ș.a.m.d. Pentru proiectul Rodin este recomandat (momentan) editorul Total Edit. Aceste editoare de text pot să funcționeze oarecum ca un IDE (mediu de dezvoltare, engl. Integrated Development Environment), dar dacă se dorește un IDE adevărat? Există soluții și în acest caz. Pentru macOS există un IDE comercial numit Haskell for Mac, necesită OS X Yosemite sau mai sus. Dacă se dorește ceva open-source, se poate instala plugin de Haskell pentru produsele IntelliJ (aici) sau, dacă aveți NixOS, puteți instala Leksah. În 2020, s-a lansat Haskell Language Server care permite oricărui editor precum cele descrise anterior să aibă funcții tip IDE pentru Haskell. Instrucțiunile de instalare se află aici. Au existat câteva plugin-uri care sunt acum depreciate, precum Visual Haskell pentru Visual Studio, plugin-urile EclipseFP și Colorer pentru Eclipse, plugin-ul pentru XCode (pe macOS) etc. Au existat și alte IDE-uri acum inactive precum haste (care a fost un IDE pentru Haskell scris în Haskell), Vital și FP Haskell Center.

Concluzia: dacă vreți să programați în Haskell, cel mai bine configurați un editor de text (Vim, Emacs, VS Code, Atom, Sublime Text, Notepad++, SciTe etc.) sau dacă sunteți pe macOS, puteți să încercați Haskell for Mac.

Pentru compilatoare și interpretoare de Haskell 2010, există GHC (Glasgow Haskell Compiler) care este compilatorul de facto pentru Haskell. Este disponibil pe majoritatea platformelor comune. Se recomandă a se folosi Haskell Platform pentru a se instala GHC împreună cu Cabal și Stack pe Windows, macOS și Linux. Pe macOS există și Haskell for Mac, menționat mai sus. Printre compilatoare de Haskell 2010 se numără UHC (Utrecht Haskell Compiler) și LHC (LLVM Haskell Compiler). În cazul Haskell 98, avem JHC și Helium, făcut special pentru a preda Haskell (și în consecință oferă erori mult mai informative decât cu celelalte compilatoare disponibile). Mai există alte compilere de Haskell 98, dar nu mai sunt menținute, precum Hugs (un interpretor mic și portabil de Haskell făcut în C, rulează pe orice mașină și are o viteză mare de interpretare, dar performanța nu se compară cu GHC de exemplu), YHC (York Haskell Compiler) și nhc98.

Lucrări în limba română, cronologic

2005:

  • Realizarea Interpretoarelor Adaptabile în limbajul Haskell 98 - articol de Dan Popa prezentat la Simpozionul International al Tinerilor Cercetatori ed. 2005, Chișinău, Republica Moldova (21-22 aprilie 2005)
  • Cum puteți scrie un mic asamblor adaptabil în Haskell 98: Popa, Dan; An assembler in a nutshell - Proceedings of the 30th annual Congress of The American-Romanian Academy of Art and Sciences (ARA), Academia de Studii Economice din Moldova, 2005, p. 196-198 x 2 coloane, ISBN 9975-75-313-2

Versiunea în limba română a lucrării, în format de capitol de carte. Bibliografia nu este inclusă, dar noțiunile folosite sunt noțiuni fundamentale de teoria categoriilor care pot fi găsite în orice carte de teoria categoriilor.

2006:

  • Descărcați slide-urile lucrării „Cum să construiesti un interpretor adaptabil intr-o singura zi!” de Dan Popa, de la Universitatea Bacău care descrie pas cu pas cum se poate construi un interpretor pentru un mic while-language în Haskell.Autorul a folosit în experimente versiunea Hugs din distributia Mandriva Linux 10.0. Lucrarea a fost prezentată la Conferinta ICMI 45. Slide-urile lucrarii sunt în format PDF cu titluri în engleză, dar au comentariile în limba română. O variantă a lucrarii, tradusă în limba engleză, este acum disponibilă aici. Deoarece nu a fost inclusa în volumul oficial ICMI45 (din vina responsabilului de număr), ea va fi republicată. Poate fi descărcată de aici.

2008:

  • O prezentare PDF numită „Evaluare Modulară și Interpretare folosind Monade și Clase de Tipuri” a fost acceptată pentru secțiunea Functional Grit de la Anglo Haskell 2008. Se poate găsi aici în engleză. Titlul tradus: Modular Evaluation and Interpreters Using Monads and Type Classes by Dan Popa.

2010:

2011-prezent:

To be continued. Vedeți și homepage-ul realizatorului User:Ha$kell

Cărți publicate în limba română

Căutați cărți despre Haskell în limba româna? Sau doriți să consultați biblioteca on-line a autorilor din grupul Ro/Haskell? Dați un click pe: Carti publicate in limba romana sau pe Capitole de manual. În cursul lunii octombrie 2008 a aparut Practica interpretarii monadice .

Carti în pregătire în limba română

  • „Translatoare scrise în Haskell 98 pentru securizarea sistemelor on-line”

Găsiți în secțiunea Capitole de manual a site-ului părți din draft-ul unui manual despre Haskell pe care am sperat să le includ intr-un volum despre scrierea unor translatoare utile în securizarea sistemelor on-line. Utilizați-le ca un set de lecții de inițiere în Haskell, deși unele capitole necesare (monade, I/O etc) nu sunt incluse. În final am inclus o parte din ele în volumul „Introducere in Haskell 98 prin exemple”.

Dacă știți limba franceză mai bine decât limba engleză, descărcați versiunea de aici, produs al unei echipe din grupul Fr/Haskell, document pe care l-am pus în format PDF după o ultima corectură.

  • Practica interpretarii monadice - Cuprinde lucrari de laborator aferente cursului de Limbaje Formale și Automate de la Universitatea Bacau, extrase din laboratoarele anului curent (si în viitor, ale altor ani). Volumul își propune să prezinte practic scrierea unui interpretor pentru un mic while-language în Haskell. Tehnicile prezentate sunt utile de asemenea la citirea/achiziționarea de date cu structuri și substructuri. Nu am mai adaugat: O mica istorie a prelucrarii datelor. Cartea este (cel puțin a fost la data apariției) un unicat, la nivel mondial mai existând doar vreo 4-5 articole pe aceasta temă — și neexistând nicio altă carte — pe glob (la data scrierii acestei note: 18 dec. 2009).
  • ... . Titlu rezervat. O carte despre producerea interpretoarelor și/sau compilatoarelor de limbaje imperative folosind monade și funcții pentru combinarea efectelor acestora. Am vrut s-o numesc „Transformers - The Royal Way of Imperative Language Construction”, dar nu găsesc un echivalent în limba română. Va detalia dezvoltarea proiectului Rodin, la care am lucrat în saptamanile precedente (prima jumatate a lui iulie 2008). Date exacte se găsesc pe pagina proiectului Rodin. S-ar putea să se numească doar „The Power of Transformers” sau chiar „Transformers”. Nu dați click - nu este pagina gata.

dRaftul personal

dRaftul personal va fi o colecție de cărți libere, electronice, pe care sper s-o construim împreună, din variantele (eventual pre-release) ale cărților din domeniul stiintelor informatice. Greșelile de tipar sunt oferite gratuit. :) Vedeți și cărțile libere din zona User:Ha$kell.

Traduceri și... voluntariat

Grupul Ro/Haskell va oferă șansa să vă afirmați ca traducator, ceea ce, (dacă sunteți filolog) se consideră activitate profesională. Vedeți Proiecte de traduceri. Contactați-l pe Dan la adresa de e-mail cunoscută (e pe site într-o prezentare .PDF) sau la telefonul cunoscut la Universitate și stabilim detaliile și... răsplata. Special pentru filologii din grupul de cercetare LOGOS, ar putea face așa ceva cu studenții lor?

Distributii Linux de Download apreciate

Lista următoare nu este nici pe departe completă. Distributii Linux de Download apreciate de utilizatorii de Haskell. De ce? Doar însuși Linux-ul este un enorm mediu de programare!

Mini-bibliotecă despre Haskell, Hugs, GHC și limbaje formale online

Nici nu vă închipuiți câte materiale există pe Internet. Voi încerca să întrețin o listă de cărți și articole disponibile pe Internet, în format PDF sau măcar să indic pe cele mai valoroase. Ro/Haskell/Mini-biblioteca-de-Haskell

Merită să citiți

Se spune despre cărți ca ajung să fie citite în întregime destul de rar. Despre o carte se spune că este bună dacă ea conține ceea ce știi deja. Altfel n-o poți aprecia. Așa că o vei citi, probabil, tot selectiv. Ce merita sa cititi aflați de aici. Lista va trebui completată, au aparut multe materiale noi.

De-ale studenților și întrebarile incepatorului

Încercăm să reflectam aici probleme cu care se confrunta studenții nostri. Să publicăm un sfat, un exemplu sau orice altceva ce i-ar putea ajuta. Citiți și: Intrebarile incepatorului

Volumul Practica interpretarii monadice care (împreună cu un istoric al domeniului) și alte capitole a fost prezentat ca teza de doctorat pe 24 noiembrie 2009 va avea o serie de Întrebari despre combinatorii de parsere pe această pagină separată.

Dacă ați ales cursul optional numit Programare functionala începeți studiul de aici: Programare functionala

Dacă sunteți interesați de cursul de Limbaje formale, dați click pe Ro/Haskell/Limbaje formale. Programa de curs va fi aici.

Dacă sunteți interesați de Laboratorul de Limbaje formale dați click pe Laboratorul de Limbaje. Atenție, este o pagină destinată celor avansați în construcția de limbaje. Ceilalți vor începe prin a citi manualul. Știți zicala: când nimic nu funcționează, ei bine... citește manualul. Laboratoarele din 2006 le-am strans în cartea Practica interpretarii monadice, care a aparut în octombrie 2008. Faceți liste de comenzi pentru ea, pentru a obtine un preț mai bun de la editor.

Dacă sunteți interesați de cursul de Tehnici de compilare dati click pe Ro/Haskell/Tehnici de compilare. Programa de curs va fi aici. Până la apariția cărții de Compilatoare in Haskell, citiți despre Constructia Compilatoarelor Folosind Flex si Bison. Scuze că nu avem mai mult deocamdată.

Dacă sunteți interesați de cursul de Arhitectura sistemelor de calcul Linux - iar Hugs și GHC ruleaza și pe Linux, dați click pe... Ro/Haskell/Arhitectura sistemelor de calcul Linux.

Cum se rateaza un examen Altele...

Prezentări

PPT-uri numai bune de vizionat. Dați click dacă sunt roșii: PPT in ENgleza, PPT in Romana. Deocamdată căutați-le la Bazar. O colectie de link-uri variate, utilă într-o lume în care până și Google este manipulat prin schimbarea ordinii apariției răspunsurilor. Iată și Târgul „Link-uri de vara 2008” O colectie de link-uri variate - 2008 Această secțiune de prezentări este în dezvoltare. Vedeți și prezentările din pagina User:Ha$kell.

Ce n-am publicat aici... încă

La o revizuire a site-ului din vara lui 2007, am gasit ca Ro/Haskell ar putea fi încă îmbunătățit. O sumedenie de lucruri ar putea fi adaugate, de la simple explicații pentru începători la colecții de link-uri catre articole și cărți celebre pentru avansați. În cazul în care căutați pe Ro/Haskell versiuni românești ale unor anumite lucrări sau anumite subiecte, uitați-vă și pe această pagină, macar să știți să... nu mai cautati.Ce n-am publicat aici... inca

Biblioteci unde am trimis (si găsiți) carti despre Haskell

Deoarece cărțile de Haskell s-au publicat în ediții mai mici decat cele de C sau C++ va indicam Biblioteci unde le puteti gasi.

Firme care folosesc Haskell și doresc să-și prezinte activitatea

Dorim să asiguram prin viitoarea pagina Firme o legătură intre cei ce folosesc Haskell și cei care învață Haskell. O cautare pe Internet m-a convins ca cererea de programatori de Haskell pentru piața externă este în crestere. Dar abia de la apariția unor cărți cum este Real World Haskell ne așteptăm la o creștere mai rapidă a numărului de aplicații. De asemenea, succesul unor proiecte de 3D Game Design (frag) a propulsat Haskell-ul și în atentia fabricanților de jocuri video, cu atât mai mult cu cât el poate fi folosit usor la implementarile inteligenței artificiale ale personajelor. (Haskell fiind un urmas al Lisp-ului și ML-ului). Citiți despre proiect și descărcați materialele sale, o carte și un motor de de Quake în surse de pe pagina frag .

S-a lansat Industrial Haskell Group https://industry.haskell.org/ cu scopul de a sprijini aplicatiile industriale ale Haskell-ului.

UPDATE: În noiembrie 2008 s-a lansat prima ediție de Real World Haskell și se poate citi online la această adresă.

Proiecte

Proiecte la care participă membri ai comunității Ro/Haskell. Pagină în dezvoltare. Deocamdată neactualizată, deși proiecte există. Începand cu cele ale studenților... Vedeti și Laboratorul de limbaje și Ph.D area când vor fi gata.

PhD. area

O zona dedicată problematicii doctoratelor, indicațiilor de realizare a tezelor și proiectelor ș.a.m.d. Se va numi Ph.D area.

Research area

Descoperirea faptului că din 2007-2008 posedăm rezultate de nivel ISI (apreciere prin comparație cu nivelul altor reviste care au publicat pe aceeași temă!) în domeniul Interpretării și Compilarii Monadice, a Construcției Modulare a Limbajelor, a Arborilor Modulari și Semanticilor Monadice Modulare, deja testate prin proiectul Rodin și oferite spre prezentare la AngloHaskell2008 apoi validate matematic prin publicare - 2009, precum și invitațiile din străinatate și interesul unor Firme Europene ne-au facut să realizam pagina Research area.

Avertismente și condiții de folosire

Atentie: Acest site este dedicat comunității Haskell, activității acesteia, încurajării folosirii limbajului Haskell și a altor proiecte conexe. În niciun caz și sub nicio formă conținutul acestor pagini nu poate fi folosit pentru blocarea activității unei persoane, interzicerea unor cursuri, atacarea unei persoane care a publicat știri reale, hărțuire, ostracizare, calomnie și alte metode de atac nejustificat la persoană care pot produce blocaje proiectelor noastre. Știrile sunt verificate și rămân în arhivă. Nu mai faceți presiuni pentru ștergerea știrilor despre șefii care ne-au pus bețe în roate, sunt inutile. Vedeți cazul Anexa.

Atenție: Trimițând articole și date personale pentru publicare pe acest site al comunității Ro/Haskell, acceptați stocarea datelor dvs. pe servere care nu sunt în Uniunea Europeană și nici macar în Eurasia! Accesul la copiile acestui site oferite de alte servicii proxy (diferite de site-ul original [www.haskell.org]) nu vă garantează nici acuratețea conținutului, nici calitatea de 'virus-free' a materialelor.

Verificați întotdeauna fișierele descărcate: PDF-urile pot conține uneori cod arbitrar, iar fișiere .doc macroviruși. Luați-vă toate măsurile de precauție posibile. Detectarea faptului că un program este virus este o problemă algoritmic nedecidabilă, deci nu se știe niciodată. Numai plain-text-ul nu contine viruși.

Materialele oferite de Ro/Haskell sunt deocamndată oferite la... Calitate Ro/Haskell sau pur și simplu „As It Is”. Firește că facem eforturi pentru a îmbunătăți continuu calitatea, dar în lipsa unei plăți din partea dumneavoastră nu putem oferi decât calitate cu garanții la nivelul minim cerut de legislație, și fără garanție de potrivire cu un scop sau altul pe care l-ați putea avea în vedere. Din fericire, deoarece Haskell este un limbaj universal extrem de puternic și flexibil, șansele unei potriviri sunt destul de mari în realitate.

Atentie: Adresele de e-mail oferite de Ro/Haskell sunt oferite exclusiv pentru: activitate didactică, promovarea limbajului Haskell și a platformelor software pe care rulează acesta, training-ului asociat și a chestiunilor legate de activitatea comunitatii Ro/Haskell și eficiența sau blocajele care intervin în aceste activități. Introducerea acestor adrese în baze de date comerciale și de uz comercial va fi tratata după caz ca SPAM (în ciuda notițelor de genul: acest mesaj nu este spam etc.) sau ca încălcare a condițiilor de utilizare a site-ului stabilite de către autorii acestuia, consecințele conform legii mergând până la confiscarea aparaturii pe care rulați baza de date. De asemenea, riscați pierderea tuturor clienților din rețele mari ca Yahoo deoarece vom marca aceste mesaje ca SPAM, în mod repetat.

Drepturi de autor

Paginile web depuse pe acest site sunt proprietatea autorilor lor, care au contribuit cu aceste materiale oferind pentru copiile de pe acest site dreptul de folosire sub o licență permisivă: https://www.haskell.org/haskellwiki/HaskellWiki:Copyrights. Materialele stocate pe servere externe acestui site și legate prin link-uri către alte site-uri se supun licentelor de pe serverele de origine! Cărțile și capitolele de cărți aparțin editorilor și autorilor și nu pot fi multiplicate fără acordul acestora. (Faceți link-uri la ele!)

În acelasi timp, conform legii 8/1996 din România aveți obligația de a cita numele autorilor sau, în lipsa numele de autor al acestora, în cazul ca nu aveți decât acest nickname. (Conform legii, autorul decide sub ce formă ajunge opera la cunoștința publicului, inclusiv cu ce semnatură de autor sau sub ce pseudonim.) Exemplu: Realizatorul acestei pagini Dan Popa trebuie citat ori ca Dan Popa, ori ca Ha$kell sau User:Ha$kell de pe www.haskell.org. Exemplu de citare corecta Fr/Haskell.

Bazare și Târguri cu link-uri

O colectie de link-uri variate, utilă intr-o lume în care până și Google este manipulat prin schimbarea ordinii apariției răspunsurilor. Cea dintâi pe care am strâns-o. (prin 2007?)

O colectie de link-uri variate - 2008 - am extras pentru dumneavoastră. Alegerea link-urilor importante (după parerea noastră) n-o poate face Google, ci o minte umană care știe ce să vă propună.

O colectie de link-uri din 1 noiembrie 2008. Am numit-o Târgul mic de Haskell din noiembrie 2008.

Links/O colectie de link-uri/iunie 2009 Am numit-o Târgul mic de Haskell din iunie 2009.

Links/O colectie de link-uri/iulie 2009 Am numit-o Târgul mic de Haskell din iulie 2009.

La târg ca la târg. Alegeți ce vă place din ceea ce se oferă. Dacă ajungeți prea târziu, s-ar putea chiar să nu mai găsiți unele lucruri.

Anticariat

Anticariat Ro/Haskell Încercam să oferim celor interesați cărțile pe care le-am citit deja. Dacă aveți cărți de Haskell disponibile, nu ezitați să le anunțați aici. Se pot trimite prin poștă ca „imprimate”, în plic având colțul tăiat, eventual cu ramburs.

Hardware

Interesul de a rula Haskell pe diferite feluri de hardware, a atins cote înalte. Așa cum am mai spus la cursul de Limbaje Formale sau la cel de Compilatoare, un limbaj cum este Haskell în care (din cauza felului cum este definit lambda calculul) același calcul se poate începe din mai multe locuri și chiar simultan, în paralel, va fi unul dintre limbajele care se pretează la rulare pe mașini intensiv paralele. Încercam să înființăm o pagina de Secrete hardware - software pentru utilizatorii de Haskell și cei care vor naviga pe acest site. Știați de exemplu că puteți folosi vechi monitoare de maxim 1024 x 768 la rezolutia 1280 x 768 neinclusa în manual, pentru a vedea mai bine programele Haskell cu linii lungi ?

Imagini din expoziții

Imagini care vor constitui o colectie. În dezvoltare...


Topul lucrărilor practice

Primul Top al lucrărilor ce merita citite de practicieni. În dezvoltare...


Universități din România unde se predă Haskell

Găsiți pe pagina: Oameni si cursuri din Romania.

Vechea pagina, neterminată este aici: Universitati la care puteti urma cursuri de Haskell si programare functionala.

Dragi colegi care predați Haskell, nu ezitați să vă prezentați activitatea!


C++ versus Haskell

Intrebari despre asemanari, deosebiri și comparatii intre limbajele

Eventual... Alte intrebari puse des.


Jocuri și concursuri

Mai mult sau mai putin legate de activitatea comunității. Jocuri. Vedeți și: Ro/Haskell/OpenGL

Haskell pentru ingineri de software și hardware

Haskell pentru ingineri

Haskell, muzica și baletul

De catva timp, numele Haskell il gasesc asociat cu informatii despre arta, mai ales despre balet. Va urma o pagină despre Haskell și arte sau, de ce nu, despre prelucrarea informației artistice. Deja cu programe Haskell s-a prelucrat muzică. Pe când și la noi alte proiecte? Reveniți când vom completa Haskell, Muzica și Baletul, iar acest link va fi albastru. Sau parcurgeți O colectie de link-uri variate - 2008 de la Târgul „Link-uri de vară 2008”

Muzica monadelor Muzică gratuită, disponibila pentru download (cu unele restricții pentru redifuzare) găsiți pe pagina Music of monads - traducerea: Muzica monadelor, mulțumită echipei muzicienilor care au colaborat cu Jamendo. Ascultați Muzica monadelor.

Navigator

Navigatorule, poți da click cu succes pe link-urile roșii! Celelalte sunt doar pagini din viitor, încă neconstruite. :)

Intrebarile incepatorului, Capitole de manual,Practica  interpretarii monadice,
Stiri Ro/Haskell,Tipuri polimorfice, Clase de tipuri, Quicksort, 
Anecdote și afirmatii hazlii,savuros dialog, Programati și zambiti!, 
Opinia editorului revistei MyLinux, Laboratorul de Limbaje (<-Pagina în pregatire.), 
Hugs <- Downloadul interpretorului Hugs , GHC  <- Downloadul compilatorului GHC,
„Cum să construiesti un interpretor adaptabil intr-o singura zi!” de Dan Popa, 
Carti publicate în limba romana, dRaftul personal, Proiecte de traduceri, 
Distributii Linux de Download apreciate, de utilizatorii de Haskell.
Ce merita sa cititi, „Introducere în Haskell 98 prin exemple” publicat la EduSoft.,
Mini bibliografie despre Programare functionala, Ce n-am publicat aici... inca, 
Proiecte, O colectie de link-uri, Înca O colectie de link-uri variate - 2008, 
Anticariat Ro/Haskell, Viitoarea colectie de Imagini, Primul Top, al lucrarilor. 
Universitati la care puteti urma cursuri de Haskell si programare functionala.,
Intrebari despre asemanari, deosebiri si comparatii intre limbajele, Eventual... 
Alte intrebari puse des., Haskell, Muzica și Baletul, Rodin,, Categories:Ro.

Bannere

Bannere necomerciale, educationale și culturale, aici: Ro/Haskell/Banners

Umor

Am avut ocazia să citesc cea mai... indescriptibilă în cuvinte pagina provenita prin traducere - presupun ca automată - din volumul Gentle. Pagina a fost atribuită spre citire domnului student Pargaru căruia îi recunoaștem meritele de umorist Haskell, în echipă cu un translator automat. Citiți: Umor Haskell mort-copt. Textul original este la pagina 35 în Gentle.

Pagina indexată la indexul Categories:Ro

Utilizare, istoric

Contoarele indicând numarul de utilizări ale paginilor site-ului continuă să creasca. Iată mai jos câteva momente istorice și numărul de accese înregistrat până la anumite date.

14 mai 2009 - This page has been accessed 18,653 times. This page was last modified 18:29, 12 May 2009

28 aprilie 2009 - This page has been accessed 18,158 times. This page was last modified 06:21, 14 April 2009

14 aprilie 2009 - This page has been accessed 17,832 times. This page was last modified 06:15, 14 April 2009

23 martie 2009 - This page has been accessed 16,981 times. This page was last modified 13:12, 18 December 2008.

22 iunie 2009 - This page has been accessed 19,754 times.

20 iulie 2009 - This page has been accessed 20,494 times. This page was last modified 10:33, 23 June 2009.

29 iulie 2009 -This page has been accessed 20,752 times. This page was last modified 19:43, 29 July 2009.

31 august 2009 - This page has been accessed 21,520 times.

7 oct 2009 - This page has been accessed 22,222 times. This page was last modified 21:28, 7 October 2009

12 dec 2009 - This page has been accessed 24,513 times.

Cândva intre 12 dec 2009 și 11 ian 2010 contorul de accese la aceasta pagină a trecut de totalul de 25000 de accese.

26 apr 2010: Contorul de accese la aceasta pagina a trecut de totalul de 27050 de accese.

9 Feb 2011. - This page has been accessed 35,588 times.

13 Apr 2011 - This page has been accessed 36,191 times.

13 Iunie 2011 - This page has been accessed 37,061 times.

7 nov 2011 - This page has been accessed 40,863 times.

24 July 2013 - This page has been accessed 68,881 times.

30 Septembrie 2021 - Între timp s-a scos funcția aceasta din MediaWiki, deci nu avem cum să știm câți au văzut această pagină. Sigur a trecut de 70000 accesări, posibil 80-90000 sau chiar 100000 accesări (totuși, între 07.2013 și 09.2021 este o distanță mare).


<= Înapoi la începutul paginii principale Ro/Haskell.

<- Înapoi la Întrebarile incepatorului Ro/Haskell.


Header2-RoH.gif

Din 12 mai 2009 Ro/Haskell se înscrie între organizațiile semnatare ale Open Education Declaration”.