2013-02-01から1ヶ月間の記事一覧

Doma 1.29.0 をリリース

Doma 1.29.0 をリリースしました。ダウンロードはこちらからどうぞ。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバージョンから移行するには移行ガイ…

TypeProviderでSQLのパラメータに型をつける

F#

コンピュテーション式でADO.NETのトランザクションを表現するアイデアを使いつつ、パラメータありのSQLをTypeProviderを使って(比較的)型安全に実行する方法を考えてみました。TypeProviderはF# 3.0で導入された、コンパイル時に型を生成する機能です。こ…

Lazyの合成

F#

Lazyのアクティブパターンを使うとすっきり書けることに気づきました。 (* ('a -> 'b -> 'c) -> Lazy<'a> -> Lazy<'b> -> Lazy<'c> *) let lift2 f x y = lazy ( let (Lazy a) = x let (Lazy b) = y f a b) do let x = lazy (10 + 20) let y = lazy (1 + 2) …

ピエールの綱渡り

F#

すごいHaskellたのしく学ぼう! にMaybeモナドの説明で、次のようなものがあります。 ピエールがバランス棒を持って綱渡りしている最中、バランス棒の左右に鳥がとまる。 左右の鳥の数の差が3より大きくなったらピエールは落下して綱渡りが失敗する。 左右の…

コンピュテーション式でADO.NETのトランザクションを表現するアイデア

F#

F#のコンピュテーション式がだんだんとわかってきたので思いついたアイデアをコードに落としてみました。 https://gist.github.com/4698060/5eae582bfda17733baa2f1944f858875324a1ea6 ADO.NETのトランザクションやコネクションの管理をすっきり書けるように…