18 lines
479 B
Haskell
18 lines
479 B
Haskell
data Item = Item
|
|
{ name :: Maybe String
|
|
, price :: Maybe Float
|
|
, color :: Maybe String
|
|
, year :: Maybe Int
|
|
} deriving (Show)
|
|
|
|
itemFromMerge :: Item -> Item -> Item
|
|
itemFromMerge (Item n p c y) (Item n1 p1 c1 y1) =
|
|
Item (maybe n pure n1) (maybe p pure p1) (maybe c pure c1) (maybe y pure y1)
|
|
|
|
main :: IO ()
|
|
main =
|
|
print $
|
|
itemFromMerge
|
|
(Item (Just "Rocket Skates") (Just 12.75) (Just "yellow") Nothing)
|
|
(Item Nothing (Just 15.25) (Just "red") (Just 1974))
|