型によるプログラミング Maybe型:欠損値に対処する Maybeを使った計算より複雑な計算
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT3(型によるプログラミング)、LESSON19(Maybe型:欠損値に対処する)、19.4(Maybeを使った計算より複雑な計算)、クイックチェック 19-3の解答を求めてみる。
コード
data Organ = Brain deriving (Show)
data Container = Vat Organ deriving (Show)
data Location = Lab deriving (Show)
report :: Maybe (Location, Container) -> String
report (Just (location, container)) =
show container ++ " in the " ++ show location
report Nothing = "report: 欠損したパーツ"
main :: IO ()
main = do
putStrLn $ report $ Just (Lab, Vat Brain)
putStrLn $ report Nothing
入出力結果(Terminal, Zsh)
% runghc sample03.hs
Vat Brain in the Lab
report: 欠損したパーツ
%