練習問題 5.1.2
10億未満の正の数を処理するように解を一般化せよ.
convert9を追加し,これを
convertとする.
convert9 :: Int -> String
convert9 = combine9 . digits9
digits9 :: Int -> (Int,Int)
digits9 = (`divMod` 1000000)
combine9 :: (Int,Int) -> String
combine9 (0,h+1) = convert6 (h+1)
combine9 (m+1,0) = convert3 (m+1) ++ " million"
combine9 (m+1,h+1) = convert3 (m+1) ++ " million " ++ convert6 (h+1)
convert :: Int -> String
convert = convert9