2014年1月2日木曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の15章(データベース)、15.11(練習問題)、1-e.をHaskellで解いてみる。

その他参考書籍

15.11(練習問題)、1-e.

コード(BBEdit)

Sample.hs

{-# OPTIONS -Wall -Werror #-}
module Main where

import Database.HDBC
import Database.HDBC.Sqlite3

main :: IO ()
main = do
    conn <- connectSqlite3 "census.db"
    r <- quickQuery' conn "SELECT State, Population FROM Density" []
    putStrLn "州/準州と人口"
    mapM_ print $ map (\[state, population] -> fromSql state ++ ": " ++
                          fromSql population)
                      r
    disconnect conn

入出力結果(Terminal, runghc)

$ runghc Sample.hs
州/準州と人口
"\12491\12517\12540\12501\12449\12531\12489\12521\12531\12489\12539\12521\12502\12521\12489\12540\12523\24030: 512930"
"\12503\12522\12531\12473\12456\12489\12527\12540\12489\12450\12452\12521\12531\12489\24030: 135294"
"\12494\12496\12473\12467\12471\12450\24030: 908007"
"\12491\12517\12540\12502\12521\12531\12474\12454\12451\12483\12463\24030: 729498"
"\12465\12505\12483\12463\24030: 7237479"
"\12458\12531\12479\12522\12458\24030: 11410046"
"\12510\12491\12488\12496\24030: 1119583"
"\12469\12473\12459\12481\12517\12527\12531\24030: 978933"
"\12450\12523\12496\12540\12479\24030: 2974807"
"\12502\12522\12486\12451\12483\12471\12517\12467\12525\12531\12499\12450\24030: 3907738"
"\12518\12540\12467\12531\28310\24030: 28674"
"\12494\12540\12473\12454\12455\12473\12488\28310\24030: 37360"
"\12492\12490\12502\12488\28310\24030: 26745"
"\12491\12517\12540\12501\12449\12531\12489\12521\12531\12489\12539\12521\12502\12521\12489\12540\12523\24030: 512930"
"\12503\12522\12531\12473\12456\12489\12527\12540\12489\12450\12452\12521\12531\12489\24030: 135294"
"\12494\12496\12473\12467\12471\12450\24030: 908007"
"\12491\12517\12540\12502\12521\12531\12474\12454\12451\12483\12463\24030: 729498"
"\12465\12505\12483\12463\24030: 7237479"
"\12458\12531\12479\12522\12458\24030: 11410046"
"\12510\12491\12488\12496\24030: 1119583"
"\12469\12473\12459\12481\12517\12527\12531\24030: 978933"
"\12450\12523\12496\12540\12479\24030: 2974807"
"\12502\12522\12486\12451\12483\12471\12517\12467\12525\12531\12499\12450\24030: 3907738"
"\12518\12540\12467\12531\28310\24030: 28674"
"\12494\12540\12473\12454\12455\12473\12488\28310\24030: 37360"
"\12492\12490\12502\12488\28310\24030: 26745"
$

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

0 コメント:

コメントを投稿