Cum sa lucrez cu valori nedefinte ?

From HaskellWiki
Revision as of 08:17, 21 January 2008 by Ha$kell (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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>

<= Inapoi la pagina principala Ro/Haskell