Personal tools

Ce este ? La ce foloseste ?

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m (adding a Pro Haskell Banner)
m
 
(One intermediate revision by one user not shown)
Line 4: Line 4:
 
Banner pro educational:
 
Banner pro educational:
 
<center>
 
<center>
http://www.haskell.org/sitewiki/images/2/2c/BannerProLinuxAndHaskell.gif
+
http://www.haskell.org/wikiupload/2/2c/BannerProLinuxAndHaskell.gif
   
 
La facultate poti invata unul din cele mai productive limbaje: Haskell !
 
La facultate poti invata unul din cele mai productive limbaje: Haskell !
Line 20: 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.