2013年11月7日木曜日

開発環境

C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)10章(Cプリプロセッサ)、10.2(条件付きコンパイル)、10.3(インクルードファイル)、10.4(パラメータをとるマクロ)、10.5(高度な機能)、10.8(プログラミング実習)実習10-1をHaskellで解いてみる。

その他参考書籍

実習 10-1.

コード(BBEdit)

Sample.hs

{-# OPTIONS -Wall -Werror #-}

main :: IO ()
main =
    mapM_ putStrLn $
           map (\x -> if multiply x then
                          show x ++ ": " ++ "10の倍数。"
                      else
                          show x ++ ": " ++ "10の倍数ではない。")
               [0, 2 .. 50]

multiply :: Int -> Bool
multiply n = if (mod n 10) == 0 then
                 True
             else
                 False

入出力結果(Terminal, runghc)

$ runghc Sample.hs
0: 10の倍数。
2: 10の倍数ではない。
4: 10の倍数ではない。
6: 10の倍数ではない。
8: 10の倍数ではない。
10: 10の倍数。
12: 10の倍数ではない。
14: 10の倍数ではない。
16: 10の倍数ではない。
18: 10の倍数ではない。
20: 10の倍数。
22: 10の倍数ではない。
24: 10の倍数ではない。
26: 10の倍数ではない。
28: 10の倍数ではない。
30: 10の倍数。
32: 10の倍数ではない。
34: 10の倍数ではない。
36: 10の倍数ではない。
38: 10の倍数ではない。
40: 10の倍数。
42: 10の倍数ではない。
44: 10の倍数ではない。
46: 10の倍数ではない。
48: 10の倍数ではない。
50: 10の倍数。
$

{-# OPTIONS -Wall -Werror #-}を記述してるから、細かく型を指定(:: Double)しないと警告がいっぱい出た。慣れるまでは{-# OPTIONS -Wall -Werror #-}の記述を消さずに細かく型を指定していくことに。

0 コメント:

コメントを投稿