Personal tools

Cum scriem "declaratii locale" in interiorul unor functii ?

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
 
m
Line 2: Line 2:
  
 
  Exemplul 1:
 
  Exemplul 1:
 +
<haskell>
 
   let f = (\x -> x +1)
 
   let f = (\x -> x +1)
 
   in f 2
 
   in f 2
 +
</haskell>
  
 
Entitatile declarate local si folosite in expresie pot fi obtinute si in urma unei potriviri de sabloane ("pattern matching"):
 
Entitatile declarate local si folosite in expresie pot fi obtinute si in urma unei potriviri de sabloane ("pattern matching"):
 
   
 
   
 
  Exemplul 2:
 
  Exemplul 2:
 +
<haskell>
 
   let (a,b) = ( [1,2] , [3] )
 
   let (a,b) = ( [1,2] , [3] )
 
   in a ++ b
 
   in a ++ b
 +
</haskell>
 +
 +
Mai este posibil sa folosim si clauza "where" :
 +
 +
Exemplul 3:
 +
<haskell>
 +
  (\x -> a*x + b
 +
          where
 +
          a=7
 +
          b=9)
 +
</haskell>
 +
 +
Oare este cel mai potrivit exemplu ? Idea e ca spre deosebire de let la care se scriu intai declaratiile locale si apoi expresia de calculat atunci cand folositi "where" se scrie intai expresia de calculat apoi declaratiile locale.
 +
 +
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la pagina principala Ro/Haskell ]

Revision as of 19:54, 31 January 2007

Se poate folosi o expresie cu let, desi nu e singura solutie:

Exemplul 1:
   let f = (\x -> x +1)
   in f 2

Entitatile declarate local si folosite in expresie pot fi obtinute si in urma unei potriviri de sabloane ("pattern matching"):

Exemplul 2:
   let (a,b) = ( [1,2] , [3] )
   in a ++ b

Mai este posibil sa folosim si clauza "where" :

Exemplul 3:
   (\x -> a*x + b 
          where
           a=7 
           b=9)

Oare este cel mai potrivit exemplu ? Idea e ca spre deosebire de let la care se scriu intai declaratiile locale si apoi expresia de calculat atunci cand folositi "where" se scrie intai expresia de calculat apoi declaratiile locale.

<= Inapoi la pagina principala Ro/Haskell