import Data.Maybe import Numeric import Data.Char data Person = Person { firstName :: String, lastName :: String } deriving Show person = Person "Erik" "Salaj" nothing = Nothing :: Maybe String just = Just "Hello, world!" :: Maybe String main = do print person print Person { firstName = "Erik", lastName = "Salaj" } print $ firstName person print $ lastName person print $ showInt 123 "" print $ showHex 123 "" print $ showOct 123 "" print $ showIntAtBase 2 intToDigit 123 "" print $ showFloat 123.456 "" print $ showEFloat (Just 2) 123.456 "" print $ showFFloat (Just 2) 123.456 "" print $ showGFloat (Just 2) 123.456 "" print $ floatToDigits 10 123.456 print $ floatToDigits 16 123.456 print nothing print just print $ isNothing nothing print $ isNothing just print $ isJust nothing print $ isJust just case nothing of Nothing -> print "Nothing" Just x -> print x case just of Nothing -> print "Nothing" Just x -> print x print $ maybe "Default" (map toUpper) nothing print $ maybe "Default" (map toUpper) just print $ fromJust just print $ fromMaybe "Default" nothing print $ fromMaybe "Default" just print $ listToMaybe ([] :: [Int]) print $ listToMaybe [1, 2, 3] print $ maybeToList nothing print $ maybeToList just print $ catMaybes [nothing, just] print $ mapMaybe (\_ -> (Nothing :: Maybe Int)) [1, 2, 3] print $ mapMaybe (\x -> Just x) [1, 2, 3]