2009-10-01から1ヶ月間の記事一覧
http://lambda-the-ultimate.org/node/3659 より。とりあえずそれっぽいの(loopはいんちき)を実装してみたんだけど、何が嬉しいのか未だ分からん...。なんとなくすごく使えそうな気がするんだけど。[追記]あー、switchとかchoiseとか無いのかー。これは厳し…
うちの会社(有限会社ITプランニング)でやってきたOCamlを使ったシステム開発の概要を書いておきます。ふと思うと今までまとめて公開したことはなかったなと。別に隠す程のものじゃないし、もしこれからOCamlを使ったプロジェクトを始めてみたい人の参考にな…
lwt 2.0出た http://ocsigen.org/lwt/ インストールしてみようとしたら、React(http://erratique.ch/software/react/doc/React)に依存してた。やはり。元々マルチスレッドを意識していないReactとその名の通りlightweightなthreadのlwtの相性は抜群だと思わ…
scala三日目 段々基本的な文法に慣れてきた。 構造的部分型の要素のMapできた。thx id:mzp。型注釈の位置の問題だった。 補助コンストラクタかファクトリメソッドか。 クロージャーの引数とタプルのパターンマッチの辺りがまだ慣れない。 共変か反変かはサブ…
Scala二日目。 trait便利すぎ クラス名の文字列からインスタンスを生成できちゃう柔軟さ Enumでいいような場面でも、あえてケースクラス 単純なimplicit defは分かるんだけど、部分型が絡んでくると急に難しく感じる。慣れの問題。 coercionって使わないの?…
アプリケーション全体に渡って使われる基本的なデータ構造については、データ構造と手続きを別モジュールにした方がよい場合もあるんじゃなかろうか。具体的に言うと、四本値とか足の種類とか通貨ペアとか。 type candle = { (* ローソク足のデータ構造 *) u…
思い切ってpa_monadを実プロジェクトに初めて投入してみた。特に今回はDB周りの処理が多かったので、maybeモナドが大活躍。 module MaybeM = struct let bind m f = match m with None -> None | Some v -> f v let return v = Some v end データベースからs…