Difference between revisions of "Pot utiliza expresii booleene in case cand sablonul e de alt tip ?"
Jump to navigation
Jump to search
m |
|||
Line 8: | Line 8: | ||
Si s-a mirat ca acest cod functioneaza fara sa dea erori de tip !! |
Si s-a mirat ca acest cod functioneaza fara sa dea erori de tip !! |
||
− | Ceea ce n-a stiut era faptul ca in '''case''', dupa un sablon se pot adauga alternative <br>sub forma de predicate si fiecare poate avea '''alta formula a rezultatului''' lui case <br> |
+ | Ceea ce n-a stiut era faptul ca in '''case''', dupa un sablon se pot adauga alternative <br>sub forma de predicate si fiecare poate avea '''alta formula a rezultatului''' lui case. <br> De exemplu: <br> |
fun :: Int -> String <br> |
fun :: Int -> String <br> |
Revision as of 19:43, 15 October 2007
Un programator a scris odata:
fun x = case x of
0 -> "zero" ;
1 -> "one" ;
otherwise -> "many"
Si s-a mirat ca acest cod functioneaza fara sa dea erori de tip !!
Ceea ce n-a stiut era faptul ca in case, dupa un sablon se pot adauga alternative
sub forma de predicate si fiecare poate avea alta formula a rezultatului lui case.
De exemplu:
fun :: Int -> String
fun x = case x of
0 -> "zero" ;
1 -> "one" ;
_ | x+1==4 -> "three"
| x+1==5 -> "four"
| otherwise -> "many"
Ceea ce a scris el este echivalent cu:
fun x = case x of
0 -> "zero" ;
1 -> "one" ;
_ | otherwise -> "many"
Despre sintaxa completa a lui case se poate citi in Haskell 98 Language and Libraries - the Revised Report de Simon Peyton Jones (editor) paragraful 3.13 pagina 25, intitulat "Case expressions".
Intrebarea este preluata de la: [acest URL ] [probabil fiind preluata din grupul de aici]
Pagina in constructie.