Difference between revisions of "Ce este ? La ce foloseste ?"

From HaskellWiki
Jump to navigation Jump to search
m
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
[[Category:Ro]]
 
[[Category:Ro]]
  +
  +
  +
Banner pro educational:
  +
<center>
  +
http://www.haskell.org/wikiupload/2/2c/BannerProLinuxAndHaskell.gif
  +
  +
La facultate poti invata unul din cele mai productive limbaje: Haskell !
  +
</center>
  +
----
  +
   
 
'''Ce este underscore _ ? La ce se foloseste ?'''
 
'''Ce este underscore _ ? La ce se foloseste ?'''
Line 10: Line 20:
 
Nu uitati: pattern matching-ul din Haskell este unidirectional nu bidirectional ca in Prolog. Deci nu puteti inversa ordinea membrilor de linga semnul = nici nu puteti plasa variabilele ale caror valori se vor descoperi in ambii membri.
 
Nu uitati: pattern matching-ul din Haskell este unidirectional nu bidirectional ca in Prolog. Deci nu puteti inversa ordinea membrilor de linga semnul = nici nu puteti plasa variabilele ale caror valori se vor descoperi in ambii membri.
   
  +
Exemplu:
  +
  +
O functie care isi aduna primele doua argumente din patru posibile ar putea fi scrisa in mod obisnuit asa:
  +
  +
<haskell>
  +
plusfirst :: Int -> Int -> Int -> Int
  +
-> Int
  +
plusfirst a b c d = a + b
  +
  +
</haskell>
  +
  +
dar astfel sunt introduse doua variabile inutile.
  +
Mai eficient va fi sa folosim underscore-ul.
  +
  +
<haskell>
  +
plusfirst :: Int -> Int -> Int -> Int
  +
-> Int
  +
plusfirst a b _ _ = a + b
  +
  +
</haskell>
   
 
----
 
----

Latest revision as of 06:00, 11 February 2011


Banner pro educational:

BannerProLinuxAndHaskell.gif

La facultate poti invata unul din cele mai productive limbaje: Haskell !



Ce este underscore _ ? La ce se foloseste ?

Simbolul underscore "_" este un element care poate apare intr-un sablon. Se foloseste atunci cand nu intentionam sa folosim in calcule sub-expresia cu care el s-a potrivit. Ganditi-va la el ca la un fel de joker de la carti. :)

Poate fi folosit in mod repetat.

Nu uitati: pattern matching-ul din Haskell este unidirectional nu bidirectional ca in Prolog. Deci nu puteti inversa ordinea membrilor de linga semnul = nici nu puteti plasa variabilele ale caror valori se vor descoperi in ambii membri.

Exemplu:

O functie care isi aduna primele doua argumente din patru posibile ar putea fi scrisa in mod obisnuit asa:

plusfirst :: Int -> Int ->  Int -> Int 
             -> Int
plusfirst a b c d = a + b

dar astfel sunt introduse doua variabile inutile. Mai eficient va fi sa folosim underscore-ul.

plusfirst :: Int -> Int ->  Int -> Int 
             -> Int
plusfirst a b _ _ = a + b

<= Inapoi la pagina principala Ro/Haskell.

<- Inapoi la Intrebarile incepatorului Ro/Haskell.