Cum sa lucrez cu valori nedefinte ?
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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. 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>