Difference between revisions of "Cum sa lucrez cu valori nedefinte ?"
Jump to navigation
Jump to search
m |
|||
Line 21: | Line 21: | ||
f2 _ = Nothing |
f2 _ = Nothing |
||
− | Observati ca pentru orice x din Integer se va gasi o ecuatie care-l da pe f de x. Unele valori sunt definite (Just 1 de exemplu) altele sunt Nothing. |
+ | Observati ca pentru orice x din Integer se va gasi o ecuatie care-l da pe f de x. <br> Unele valori sunt definite (Just 1 de exemplu) altele sunt Nothing. |
</haskell> |
</haskell> |
||
Revision as of 08:18, 21 January 2008
O solutie ar fi sa folositi tipul Maybe. E ca si cum s-ar lucra cu niste cutii, pe unele scrie ca e corect definit (just!) ce e inauntru si le puteti deschide iar pe altele scrie "nimic" (eng. Nothing") si nu le puteti deschide.
Maybe este un constructor de tip care duce un tip oarecare a in tipul Maybe a. Va duce de exemplu Integer in Maybe Integer. Valorile din tipul Maybe Integer vor fi: Just 1 Just 2 .. si Nothing
Iata doua functii total SPECIFICATE pe Integer dar care au si valori Nothing:
f1 :: Integer -> Maybe Integer
f1 1 = Just 1
f1 _ = Nothing
f2 :: Integer -> Maybe Integer
f2 1 = Just 1
f2 2 = Just 2
f2 _ = Nothing
Observati ca pentru orice x din Integer se va gasi o ecuatie care-l da pe f de x. <br> Unele valori sunt definite (Just 1 de exemplu) altele sunt Nothing.
Iata si raspunsurile interpretorului.
Main> f1 1
Just 1
Main> f1 2
Nothing
Valorile tipului Maybe pot fi si comparate, totdeauna Nothing este mai mic decat celelalte valori Just x (pentru orice x).
Main> Nothing < Just 1
True
Main>