2013年10月19日土曜日

開発環境

『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の12章(新しいクラスのオブジェクト), 12.1(Timeクラス)、12.2(練習問題)、10億秒をHaskellで解いてみる。

その他参考書籍

10億秒

コード(BBEdit)

sample.hs

{-# OPTIONS -Wall -Werror #-}

import System.Time

main :: IO ()
main = do
    mapM_ putStrLn
          ["誕生日:   " ++ (show birthClockTime),
           "10億秒後: " ++ (show futureClockTime)]

birthCalendarTime :: CalendarTime
birthCalendarTime =
    CalendarTime 2000 January 2 3 4 5 0 undefined undefined "UTC" 0 False

birthClockTime :: ClockTime
birthClockTime = toClockTime birthCalendarTime

secs :: Integer
secs = (\(TOD sec _) -> sec) birthClockTime

addSecs :: Integer
addSecs = 10 ^ (9 :: Integer)
futureClockTime :: ClockTime
futureClockTime = TOD (secs + addSecs) 0

入出力結果(Terminal, runghc)

$ runghc sample.hs
誕生日:   Sun Jan  2 12:04:05 JST 2000
10億秒後: Wed Sep 10 13:50:45 JST 2031
$

0 コメント:

コメントを投稿