型の紹介 カスタム型の作成 レコード構文を使用する レコード構文を使用しない場合
入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT2(型の紹介)、LESSON12(カスタム型の作成)、12.3(レコード構文を使用する)、クイックチェック12-2の解答を求めてみる。
コード
type FirstName = String
type MiddleName = String
type LastName = String
-- 出力のためにまだ出てきてないけどderiving Showを追加
data Name
= Name FirstName LastName
| NameWithMiddle FirstName MiddleName LastName
deriving (Show)
data Sex = Male | Female deriving (Show)
data ABOType = A | B | AB | O deriving (Show)
data RhType = Pos | Neg deriving (Show)
data BloodType = BloodType ABOType RhType deriving (Show)
data Patient = Patient Name Sex Int Int Int BloodType deriving (Show)
patient :: Patient
patient =
Patient
(NameWithMiddle "Jane" "Elizabeth" "Smith")
Female
30
74
200
(BloodType AB Pos)
main :: IO ()
main = do
print patient
入出力結果(Terminal, Zsh)
% runghc sample02.hs
Patient (NameWithMiddle "Jane" "Elizabeth" "Smith") Female 30 74 200 (BloodType AB Pos)
%