Haskellで参考にしたもの
Web Framework
Scotty / Spock
Rubyで言う所のSinatraのような軽量フレームワークのhaskell版。ScottyよりSpockの方が、waiに準拠している上に機能も充実していて良いらしい。
Spockの紹介記事は以下。
ScottyをHerokuで動かしてみたサンプルアプリは
Yesod
Yesodのすごいところは、shakespeareのおかげでビューにまで型付きの制約があるところで、このおかげでリンク切れとか起きないらしい。(もしリンクが切れるようなことがあれば、それはコンパイルが通らない。)
またketer
と言うデプロイマネージャーは、ローカルでコンパイルして、実行に必要なファイルをすべてまとめてサーバーにscpし、ダウンタイム0でデプロイしてくれるようにできるらしい。とても便利。
公式のScreecastsには、わずか40分程度!で簡単なブログを組み立てる動画が見られる。
HTMLエスケープやXSSを防ぐ機構についてはライブラリが面倒を見てくれるため、我々はそういったことに気をつかうことなく安心してWebアプリを書くことができる。
Other
Web/Comparison of Happstack, Snap and Yesod - HaskellWiki
テンプレートエンジンについては記事を書きました。
DB操作をする
YesodのDatabase.Persistentが、sqlite, mongoDB, postgresSQLなどのDBとのアダプターとなって、マイグレーションを自動でやってくれるとか便利。
blog.fujimuradaisuke.comLibraries
- Cloud Haskell
http://haskell-distributed.github.io/
実際にこれを使って分散処理を書くのがやりやすいかというと、やはりもう少しダイナミックに型を扱える言語の方が書きやすいのかもしれない。
- IntervalMap
- Aeson
Template Haskellを用いて、dataの定義からderiveJSON
するのがスマートそうな気がします。
Data.AesonでJSONを扱う | saito's memo
文字列型
Other
例えばm [a] => [m a]
にする関数が何かを知りたいと思った時、Hoogle で検索するのが便利そうです。初心者なのでコンパイルが通らない時に型の帳尻合わせをしたくなるので、そういった時に重宝しました。