Sâmbătă, 18.05.2024, 10:45
Bine ati venit Гость | RSS

[ Mesaje noi · Membrii · Regulamentului forumului · Cautare · RSS ]
  • Pagina 1 din 1
  • 1
Forum » General » Programare » Hasckell (Discutii despre Hasckell)
Hasckell
XonnectData: Duminică, 16.05.2010, 01:18 | Mesaj # 1
StarX
Grup: Administratori
Mesaje: 44
Reputaţie: 20000
Status: Offline
Haskell este un limbaj de programare funcţională. Poartă numele lui Curry Haskell.
Spre deosebire de limbajele imperative care manipuleaza practic date sub forma de numere întregi sau valori codate prin numere întregi (caractere, stringuri, pointeri), limbajele funcţionale manipulează funcţii codate prin "expresii lambda". Dacă limbajul funcţional e compilat sunt codate prin combinatori. Cum mulţimea functiilor este mai bogată decat cea a numerelor întregi (are un cardinal mai mare), asemenea limbaje sunt mult mai expresive.
La nivel pragmatic, orice limbaj functional poate fi văzut ca un manipulator de algoritmi, exprimaţi cel mai adesea ca la orele de matematică elementară.
Teoria matematică a calculului lambda se studiază în cadrul cursului de Programare funcţională.

- in Haskell puteti scrie programe sigure, functiile din limbajul functional nefiind afectate de efecte externe, cum ar fi schimbari de variabile globale.
- in Haskell puteti manipula algoritmi sub forma de functii. Se deschide astfel usa catre o serie de domenii incluzand printre ele "Algoritmii genetici" unele optimizari, "Sabloane de programare", "Inteligenta artificiala", "Sisteme adaptive" si alte domenii
- putem modela procese, care se combina intre ele, deoarece avem la dispozitie compunerea de functii.
- putem face verificari ale datelor folosind parsere modulare ale caror efecte / verificari asupra intrarilor se compun
- putem scrie algoritmi generici uramand ca functia/prelucrarea care lipseste sa fie furnizata ca parametru ulterior
- putem demonstra matematic corectitudinea functiilor scrise, daca se cere asa ceva
- avem la dispozitie functii anonime, functii de unica intrebuintare.
- deoarece aplicarea functiilor asociaza la dreapta iar in cursul calculelor regulile de reducere se pot aplica in mai multe locuri din formula, evaluarea unei formule se poate face pe mai multe procesoare conlucrand ! Acest lucru califica limbajele functionale (bazate pe combinatori si/sau lambda calcul) printre limbajele din deceniul procesarii dual-core si/sau quad-core.
- in Haskell, limbaj functional pur, fara efecte laterale, functiile dau intotdeauna acelasi rezultat (da, chiar si functiile pentru I/O - vedeti monada de I/O) ceea ce permite garantarea calitatii software-ului. Permite de asemenea si demonstrarea calitatii lui. (Aici ar fi de adaugat referinte la carti...)
- puteti incapsula sabloane de programare in functii de ordin superior
- puteti lucra in stiluri cum sunt generic programming si monadic programming (cel putin in Haskell si ceva mai greu in alte limbaje functionale cum sunt LISP si Scheme)
- daca limbajul admite clase (Haskell admite, iar Lisp-ul nu) puteţi defini clase in care datele manipulate sunt de fapt functii.
- in Haskell, limbaj funcţional pur, 'actiunile de I/O' se pot folosi şi ca instrucţiuni, şi ca date. Pot fi plasate pe liste, pe arbori sau pe alte structuri, puteti parcurge cum doriti lista sau arborele si construi dinamic, din mers, o actiune de I/O compusa. Această acţiune numită main este executată când rulaţi programul.

 
Forum » General » Programare » Hasckell (Discutii despre Hasckell)
  • Pagina 1 din 1
  • 1
Căutare: