2014年1月10日金曜日

開発環境

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

その他参考書籍

15.11(練習問題)、2-c.

コード(BBEdit)

Sample.hs

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

import Database.HDBC
import Database.HDBC.Sqlite3

main :: IO ()
main = do
    conn <- connectSqlite3 "census.db"
    putStrLn "州/準州都の人口が10万を超える州/準州の面積"
    r <- quickQuery' conn ("SELECT Density.Area " ++
                           "FROM Density INNER JOIN Capitals " ++
                           "WHERE (Density.State == Capitals.State) " ++
                           "AND (Capitals.Population > 100000)") []
    mapM_ putStrLn $ map fromSql $ concat r
    disconnect conn

入出力結果(Terminal, runghc)

$ runghc Sample.hs
州/準州都の人口が10万を超える州/準州の面積
370501.69
52917.43
1357743.08
907655.59
551937.87
586561.35
639987.12
926492.48
$

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

0 コメント:

コメントを投稿