Difference between revisions of "Cum scriem "declaratii locale" in interiorul unor functii ?"
Jump to navigation
Jump to 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.