Cum scriem "declaratii locale" in interiorul unor functii ?
From HaskellWiki
(Difference between revisions)
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.
