計算機科学のブログ

型の紹介 - カスタム型の作成 - 型型シノニムを使用する変数 - typeキーワード

入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT2(型の紹介)、LESSON 12(カスタム型の作成)、12.1(型シノニムを使用する)、クイックチェック 12-1の解答を求めてみる。

コード

sample1.hs

main = do
  print $ patientInfo ("Will", "Kurt") 20 100
  putStrLn $ patientInfo ("Will", "Kurt") 20 100

type PatientName = (String, String)

firstName :: PatientName -> String
firstName  = fst 

lastName :: PatientName -> String
lastName  = snd 

patientInfo :: PatientName -> Int -> Int -> String
patientInfo patient age height = 
    let name = lastName patient ++ ", " ++ firstName patient
        ageHeight = "(" ++ show age ++ "yrs. " ++ show height ++ "in.)"
    in name ++ " " ++ ageHeight

入出力結果(Terminal, Zsh)

% runghc sample1.hs
"Kurt, Will (20yrs. 100in.)"
Kurt, Will (20yrs. 100in.)
%