osiire’s blog

ふしぎなそふとやさん

2009-04-01から1ヶ月間の記事一覧

Bouncing Ball in OCaml with Amthing

http://blog.mestan.fr/2009/04/28/bouncing-ball-in-ocaml-with-ocamlsdl/という話を見つけたのでAmthingでも挑戦。 (*******************************************************************) (* Amthing Example3. bounce ball *) (**********************…

叫びの例

なぜQt程のライブラリが、ウィジットが重なっている時にその下側でマウスイベントを取るオプションすら持ってないんだー。うがー。ポップアップメニューの出現位置も全く制御できないしー。やってられねー!

Re: 時代は今、Cursesへ

時代は今、Curses へ - Oh, you `re no (fun _ → more)について。 いや、放言なんてことなくて、結構本質を捉えてらっしゃると思います。私が感じるその本質とは、このCurses最強の理由にあります。 Curses の表面だけ使ってればスケーラビリティは自分で担…

OCamlの魅力

「Debian関連の方々の勉強会でOCamlをやったが、魅力がいまいち分からない(http://d.hatena.ne.jp/mkouhei/20090419/1240106632)」という話があるみたいですが、思い立ったので、私から見たOCamlの魅力、特にシステム開発の仕事で使うという視点から見たOCam…

レコードでもバリアントでもうまく表現できない

ある属性attr1はAとBという値を持つ。またある属性attr2はCとDという値を持つ。これをOCamlで表現するとこう。 type t = { attr1 : [ `A | `B ]; attr2 : [ `C | `D ]; } ただし、attr2のDという値はattr1の値がBの時のみ有効であるという条件を加えると...…

イベントドリブン(続き)

事は簡単。イベントと処理(やりたい事)の間を繋ぐ橋を作ればいいのです。具体的には処理(やりたい事)を中心に、この処理はどのイベントから起動されるのかを指定し、どういう状態の時に実行してよいかをまとめておく。こうすればこの「橋」は、指定された(複…

イベントドリブン

GUIプログラムはイベントドリブン。イベントが起きたら、それに対する動作を記述する。単純で分かり易いモデルだし広く受け入れられています。ただ、私はそもそもこのモデルには決定的に足りないものがあると思う。それは、イベントと処理(やりたい事)の間を…

ついにAmthing公開

AmthingをOCamlForgeにコミットしました!コンパイルするのはライブラリを揃えるのが大変だと思うので、とりあえず興味のある方はコードでも眺めてみてください。 https://forge.ocamlcore.org/plugins/scmsvn/viewcvs.php/trunk/?root=amthing AmthingはOCa…

私はどうしてGUIライブラリに興味を持ったのだろう?

「小さい頃は基本的にゲーム本位だった」と以前に書いたが、実は高校生の頃には既に、PC-98+MS-DOS上で動く常駐型グラフィックドライバを開発するほど描画系には興味を持っていた。ただ、それだけならゲーム会社に就職してもいいはずだったが、そうならなか…

amthing進捗

最近amthingの進捗が素晴らしく進んでいる。I君やM君に手伝ってもらっているおかげだ。ありがとう。どうしてもこのタームで完成させたいのでよろしくお願いします。完了: pango XIM over the spot 基礎的なイベントデバッグ TODO: librsvgへの対応 CLICK_OTH…

多相バリアントと型フィルター

多相バリアントってとても簡潔に便利なので、すぐに「次の要望」が出て来てしまう。例えば、型のフィルターが欲しい。 # type x = [`A | `B];; type x = [ `A | `B ] # let filter = function #x -> true | _ -> false;; val filter : [> x ] -> bool = <fun> # l</fun>…

多相バリアントと抽象化

多相バリアントとして定義している型xとそれを内包するモジュールがあって、ファンクター経由でそのモジュールを使う為に、そのモジュールのシグネチャーを定義したい。もちろん型xは抽象化して。ところが、そのモジュール内にごくまれに型xを拡張した型を含…