osiire’s blog

ふしぎなそふとやさん

2012-01-01から1年間の記事一覧

OCamlの開発環境の作り方 2012年暮れ版

この記事はLL/MLアドベントカレンダーの記事です。一時期停滞していたOCamlの開発環境は最近進化してきています。2012年暮れ時点における知見をまとめてみましょう。なお、これらの進化はOCaml開発チームはもとより、OCamlPro, @camlspotter氏、@m2ym氏の多…

GoF in OCaml for Advent Calendar 2012 #8

OCaml Advent Calendar用の記事、第八弾目です。commandパターンいってみましょう。http://en.wikipedia.org/wiki/Command_pattern上記のリンクは英語版です。(日本語版にはサンプルコードが載ってなかったので。@mrgchrさん情報ありがとうございます!)コ…

GoF in OCaml for Advent Calendar 2012 #8

OCaml Advent Calendar用の記事、第八弾目です。commandパターンいってみましょう。http://en.wikipedia.org/wiki/Command_pattern上記のリンクは英語版です。(日本語版にはサンプルコードが載ってなかったので。@mrgchrさん情報ありがとうございます!)コ…

GoF in OCaml for Advent Calendar 2012 #7

OCaml Advent Calendar用の記事、第七弾目です。今日から振る舞いに関するパターンシリーズに突入です。最初はChain of Responsibilityパターンいってみましょう。http://ja.wikipedia.org/wiki/Chain_of_Responsibility_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%…

GoF in OCaml for Advent Calendar 2012 #6

OCaml Advent Calendar用の記事、第六弾目です。構造に関するパターンの最後、Proxyパターンやります。http://ja.wikipedia.org/wiki/Proxy_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3Proxyパターンは、インターフェイス経由で実体にアクセスすることで、間に一…

GoF in OCaml for Advent Calendar 2012 #5

OCaml Advent Calendar用の記事、第五弾目です。Flyweight パターンやります。http://ja.wikipedia.org/wiki/Flyweight_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3Flyweightパターンはどうやらインスタンスをキャッシュして使いまわす手法のようです。OCamlでキ…

GoF in OCaml for Advent Calendar 2012 #4

OCaml Advent Calendar用の記事、第四弾目です。今日はFacadeパターンいってみましょう。http://ja.wikipedia.org/wiki/Facade_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3Facadeパターンは、関連するクラス群を使用するための手続きを、窓口となる一つのクラスに…

GoF in OCaml for Advent Calendar 2012 #3

三日坊主の三日目です。これで目標は果たせるので一安心です。 OCaml Advent Calendar今日は構造パターンの一つDecoratorパターンやってみます。 http://ja.wikipedia.org/wiki/Decorator_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3Decoratorパターンは、特定の(…

GoF in OCaml for Advent Calendar 2012 #2

OCaml Advent Calendar二日目です。 Adapterパターンの次はBridgeパターンですが、これは継承と委譲を組み合わせる話なので前回のAdapterパターンと記述的には同じです。省略。という事で、今回はCompositeパターンをOCamlで記述してみます。Compositeパター…

GoF in OCaml for Advent Calendar 2012 #1

年末で忙しいのにやってしまった感があります。OCaml Advent Calendar作ってしまいました。 OCaml Advent Calendar 作ったからには三日坊主は目指して参ります。参加したい方は上のページで参加表明お願いします。編集権限お渡しします。問題のネタですが正…

祖父のコレクション

先月祖父が他界した。享年97歳。数年前まで自転車に乗り庭弄りをしていた元気なおじいちゃんだった。その祖父が集めていた切手やコインがあるとの事で整理してみた。 ダンボールに入ったコレクション。大半は記念切手や記念コイン。地方自治法施行六十周年記…

emacs+omakeなocamler向けのflymake設定

下記の設定を.emacsに入れてocaml-flymake.shを適当な場所に置くだけ。色はお好みにどうぞ。 (require 'flymake) (push '("File \"\\(.*\\)\", line \\([0-9]+\\), characters \\([0-9]+\\)--?\\([0-9]+\\):\\(.*\\)" 1 2 3 5) flymake-err-line-patterns) (…

イベントドリブンな状態遷移をFRPで記述してみる

例題の仕様は次の通り。 b1,b2というボタンがあり、これらはON,OFFがあるトグルボタン。 modeというトグルボタンがある。 modeがOFFの時、b1とb2は排他的な動きをする(ラジオボタンのような動き)。 modeがONの時、b1とb2は独立なトグルボタンとして動作する…

既存モジュールを使って幽霊型を作る

幽霊型は型で特定のお約束を強制的に守るために役に立ちます。しかし、大抵は既存のモジュールの型の意味を後から使い分けたくなるのでそのためのテクニックも追加で必要になります。例えば次のような10進モジュールDecimalがあったとします。 module Decima…

Algorithm W入門を攻略してきた

先日@pi8027さん著の「Algorithm W入門」を攻略してきました。http://partake.in/events/22da1e72-032d-49ae-847f-a56606308320@Mega80bさんに同書をお渡しするついでに読書会です。@t6sさん、@mzpさん、つきあってくれてありがとう。設定したクリア条件は三…

signalは使うときに工夫しないと使い物にならない

我ながら意味不明なタイトルだが気にしない。もう少しきちんとかくと、「FRPで言うところのsignalとかbehaviorとかは、そのままでは使いにくい。ちょっと工夫しないとすぐに困ったことになる」という事。例えば単純化して次のようなSignalモジュールがあった…