Z4

From HaskellWiki
Revision as of 05:44, 6 November 2008 by Ha$kell (talk | contribs) (Z4 - from math)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Haskell - Un limbaj functional pur

Haskell este limbajul functional succesor al LISP-ului, Scheme-ului si ML-ului !!!
Cel mai productiv limbaj functional ! Limbajul folosit de autorii limbajului Perl 6 si ales de echipa Linspire, utilizat la Inteligenta artificiala, prelucrari multimedia, Retele Petri, programare functionala in Robotica, sinteza de circuite electronice, motoare de baze de date , cercetare , productie de software "type safe",productie de limbaje (DSL-uri), proiectare automata de scheme electronice, analize statistice si financiare (bancare)...
V-am starnit curiozitatea ? Cititi: Intrebarile incepatorului. Am adaugat raspunsuri noi (16 dec. 2007- 10 feb. 2008).


Stirile lunii:Stiri Ro/Haskell

Cuprinsul paginii :


. Prezentarea proiectului

Exista deja un veritabil interes pentru Haskell din randul matematicienilor. De altfel daca intrebati pe un forum de discutii care ar fi cel mai bun limbaj pentru matematicieni - uni au intrebat - vi se va raspunde: Haskell.

Legaturile dintre Haskell si Matematica pot fi exploatate pentru a obtine specialisti in matematica aplicata capabili sa realizeze produse informatice bazate pe matematica.

Programul "Ro/Boosting your Math. Faculty with Haskell" isi propune sa mareasca potentialul unei Facultati de matemnatica prin introducerea Haskell-ukui ca limbaj de laborator si seminar. (da - ati citit bine, limbaj de laborator la matematica). Deja o serie de grupe de matematica - cel putin acolo unde lucreaza subsemnatul - fac or in laboratoarele de informatica.

Cum va afiliati programului ?

Nu e nevoie de concurs de proiecte dosar sau altceva. Tot ce aveti de facut este sa folositi Haskell-ul (Fie interpretorul Hugs sau WinHugs fie compilatorul GHC si versiunea sa interactiva GHCi.) Popularizati apoi rezultatele pe web, le vom centraliza aici acordand stelute * pentru fiecare din urmatoarele activitati:

Un mic exemplu Z4

Salvat-l ca fisier cu extensia .hs

module Z4 where

class Resturi r where
  x    :: r -> r 
            -> r
  plus :: r -> r 
            -> r
  minus:: r -> r 
            -> r

-- Noul tip de date va avea elemente de forma: (Clasa 1), (Clasa 2) etc. 
newtype Z4 = Clasa Int 
             deriving Show   -- ca sa poata fi afisate pe ecran

instance Resturi Z4  where
  (Clasa a)  `x`    (Clasa b) = Clasa ((a*b) `mod` 4 )
  (Clasa a)  `plus` (Clasa b) = Clasa ((a+b) `mod` 4 )
  (Clasa a)  `minus` (Clasa b) = Clasa ((a+b) `mod` 4 )

-- Atentie, apostroful invers este pe tasta de linga cifra 1. In haskell daca o functie f o transformam in operator infixat se scrie: operand1 `f` operand2

Nota de utilizare: Daca nu merge exemplul sub GHC , GHC-ul va da un mesaj prin care poate cere sa activati o optiune de compilare, si va spune si care. Adaugati la inceput linia :

{- OPTIONS -XFlexibleInstances -}


. Cum rulati ?

Scrieti textul de mai sus, si incarcati-l in Hugs cu (File -> Open sau :load fisier.hs) . Sau dati click pe fisier daca ati instalat GHC-ul.

Acum puteti face calcule in Z4,fara probleme, de exemplu de la consola (apoi din alte programe). Alte programe vor putea importa modulul cu import Z4.

> (Clasa 3) `plus` (Clasa 2) - apasati Enter si obtineti rezultatul.

O mica aplicatie de la logica mai jos. Logica peste Z4.


Pagina indexata la indexul Categories:Ro


<= Inapoi la inceputul paginii principale Ro/Haskell.

<- Inapoi la Intrebarile incepatorului Ro/Haskell.