Haskell - コンテキストでの型の操作 - Applicative型クラス:関数をコンテキスト内で使用する - <*>を使ってデータをコンテキスト内で作成する
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT5(コンテキストでの型の操作)、LESSON 28(Applicative型クラス:関数をコンテキスト内で使用する)、28.3(<*>を使ってデータをコンテキスト内で作成する)、クイックチェック28-5の解答を求めてみる。
コード
sample5.hs
main :: IO ()
main = do
print $ User <$> Just "Sue" <*> Just 1337 <*> Just 9001
-- Nothing
print $ User <$> Nothing <*> Just 1337 <*> Just 9001
data User = User
{ name :: String,
gamerId :: Int,
score :: Int
} deriving Show
入出力結果(Terminal, Zsh)
% runghc sample5.hs
Just (User {name = "Sue", gamerId = 1337, score = 9001})
Nothing
%