2013年12月8日日曜日

開発環境

C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の15章(デバッグと最適化)、15.6(最適化)、15.6.1(強力な2の累乗)、設問 15-1をHaskellで解いてみる。

その他参考書籍

設問 15-1.

コード(BBEdit)

Sample.hs

{-# OPTIONS -Wall -Werror #-}

main :: IO ()
main = mapM_ putStrLn $ map (\(x, y) -> (show $ ones !! x !! y) ++ ", " ++
                                        (show $ minusOnes !! x !! y))
                            [(x, y) | x <- [0..4], y <- [0..4]]


ones :: [[Int]]
ones = map (\_ -> take 32 [1, 1..]) ([1..60] :: [Int])

minusOnes :: [[Int]]
minusOnes = map (\_ -> take 32 [-1, -1..]) ([1..60] :: [Int])

入出力結果(Terminal, runghc)

$ runghc Sample.hs
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
1, -1
$

慣れるまでは{-# OPTIONS -Wall -Werror #-}の記述を消さずに細かく型を指定していくことに。

0 コメント:

コメントを投稿