Personal tools

Tipuri polimorfice

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
 
 
(One intermediate revision by one user not shown)
Line 1: Line 1:
  +
[[Image:Haskelllogo-small-flag-RO-8.jpg|center|Haskell - Tipuri polimorfice]]
  +
  +
[[Category:Ro]]
 
In Haskell puteti lucra cu functii al caror tip include un fel de variabile de tip, (inclusiv in parametrii functie al acelor functii!):
 
In Haskell puteti lucra cu functii al caror tip include un fel de variabile de tip, (inclusiv in parametrii functie al acelor functii!):
   
De exemplu functia (din biblioteca Standard Prelude) care filtreaza o lista
+
De exemplu functia ''filter'' (din biblioteca Standard Prelude) care filtreaza o lista
 
are tipul:
 
are tipul:
   
(a -> Bool) -> [a] -> [a]
+
filter :: (a -> Bool) -> [a] -> [a]
   
 
Adica: <br>
 
Adica: <br>
Line 34: Line 37:
   
 
----
 
----
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la pagina principala Ro/Haskell ]
+
Pagina indexata la indexul [[Category:Ro]] [http://www.haskell.org/haskellwiki/Category:Ro Categories:Ro]
  +
----
  +
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la pagina principala Ro/Haskell. ]<br> <br>
  +
[http://www.haskell.org/haskellwiki/Intrebarile_incepatorului <'''-''' Inapoi la Intrebarile incepatorului Ro/Haskell. ]

Latest revision as of 13:24, 4 October 2008

Haskell - Tipuri polimorfice

In Haskell puteti lucra cu functii al caror tip include un fel de variabile de tip, (inclusiv in parametrii functie al acelor functii!):

De exemplu functia filter (din biblioteca Standard Prelude) care filtreaza o lista are tipul:

filter :: (a -> Bool) -> [a] -> [a]

Adica:
- primeste ca prim parametru un predicat, (predicatul e o functie de la un tip oarecare a la tipul Bool al valorilor booleene)
- al doilea argument e o lista de elemente de tip a (tip necunoscut)
- rezultatul este tot o lista de elemente de tip a.

Functiile definite de utilizator pot fi si ele polimorfice.


Daca intrebati interpretorul Hugs sau compilatorul interactiv GHCi ce tip are functia filter obtineti raspunsul:

Prelude> :t filter
filter :: (a -> Bool) -> [a] -> [a]

O asemenea functie poate filtra ORICE fel de lista. In exemplul de mai jos filtreaza o lista de intregi.

Prelude> filter (>2) [1,2,3,4,1]
[3,4]
Prelude>

Pagina indexata la indexul Categories:Ro


<= Inapoi la pagina principala Ro/Haskell.

<- Inapoi la Intrebarile incepatorului Ro/Haskell.