2011-11-01から1ヶ月間の記事一覧

Yesodが動かない

Yesodがインストール出来たので、当然動かしてみるわけです。 Yesod in Five Minutesを見ながら最初のサンプルを作ってみたのですが・・・最後の最後、開発用サーバ起動コマンドに失敗するのです。 yesod develを実行すると dist/devel.hs:3:1: Failed to lo…

Yesodがインストールできた!

こないだこんなこと書いたのですが、cabalコマンドをsudoで叩くとインストール出来ました! sudo cabal install yesodこれでYesodで遊べるかも、と思うとわくわくします。

Yesodがインストールできない

何やら最近YesodというHaskell製のWebフレームワークがあつい、と聞いたのでインストールしてみようと思ったのですが・・・ 例によって敷居が高い!Yesod in Five Minutesに沿ってインストールしようとすると cabal install yesodで zlib-bindings-0.0.1 fai…

Haskellは型が先にある

Haskellの正規表現パッケージの使い方を見ていて、衝撃を受けました。 Prelude> :m Text.Regex.Posix Prelude Text.Regex.Posix> "abca" =~ "a" :: Bool True Prelude Text.Regex.Posix> "abca" =~ "a" :: Int 2 Prelude Text.Regex.Posix> "abca" =~ "a" ::…

Text.Htmlを使ってHTMLを出力

HaskellでCGIを作る、続きです。やはりCGIはHTMLを出力してこそ。でも文字列連結でHTMLを作るのはちょっとかんべん。 テンプレートエンジンをインストールしてもいいのだけど、GHCに付属しているText.Htmlというライブラリがあったので使ってみました。 Text…

HaskellでCGI

今、メインマシンのMacBook Airがありません。だからデスクの下の奥深くに眠っているUbuntuマシンを久々に引っ張り出してきました。 このマシンはサーバソフトの調査用に使っているのですが、今回はこのマシンを使ってHaskellでCGIを書いてみることにしまし…

HDBCとReaderTモナドを組み合わせてみる

HDBCでDBを操作するプログラムを書いていると、少なからずDB接続(IConnection)がうっとうしくなってきます。DB操作を行う関数は全て、引数にDB接続を取るからです。例えばCRUD操作を行う関数を書いたとします。 insertC c = runRaw c "insert into COUNTER…

HDBCを使う

さてようやくDB操作を実践出来ます。 せっかく導入に成功したHDBC-postgresqlですが、本エントリには出て来ません。DB操作はHDBCというパッケージで抽象化されているからです。 JavaでいうところのJDBCがHDBCで、JDBCドライバがHDBC-postgresqlに当たるわけ…

Haskellで書くときに欠かせないサイト

Hoogleが最重要!関数の名前での検索はもちろんですが、型で検索できるのが秀逸です。例えば (a -> b) -> [a] -> [b]で検索した結果がこちら。結果からはHackageDBというサイトのAPIリファレンスページへのリンクがはられています。 HackageDBはその名の通り…

HDBC-postgresqlが動いた

PostgreSQLを+universalでインストールし、x86_64とi386の両方に対応させたのが前回まで。 ちなみにGHCのライブラリのアーキテクチャを調べると、i386だったことが判明しました。 file /Library/Frameworks/GHC.framework/Versions/7.0.3-i386/usr/lib/ghc-7…