OCaml

Ocsigen/EliomとPGOCamlを使ったサンプル

2年前に触ったときのソースをここに置いたのだった。 http://tsukimi.agusa.i.is.nagoya-u.ac.jp/~sydney/eliomsample.tar.gz しかしおそらく古すぎて動かないと思う。

Ocsigen/Eliomの入力値検査

Ocsigenで簡単なサンプルを書いた。 簡単すぎて悲しくなるけど、最初はこんなもんだろう。今週でこれをそこそこの規模に成長させる予定です。 足し算アプリ Struts にあるような入力値の検査機能(その業界ではバリデーションといいます)はOcsigenにはないの…

OcsigenについてLTしました

オープンソースカンファレンス2009 Nagoya で OCaml の Webフレームワーク Ocsigen についてLTしてきました。 中身のあることは殆ど言ってませんがこちらにスライドを置きます:OCaml Webフレームワーク Ocsigen概説 @ OSC2009NagoyaView more documents fro…

Mac OS X における Ocsigenのインストール

OcsigenはOCamlのWebアプリケーションフレームワークです。 (2年前に触っていて記事も少し書いたのですが飽きてやめちゃいました。) Webアプリケーションの全てを型安全に構成できる素晴らしいこのフレームワークによる開発環境を Macで準備します。 とりあ…

型レベルプログラミング会議

# トラックバックをバラまいてしまいました m(_ _)m スミマセン…型レベルプログラミング会議 に行ってきました。 帰りの新幹線でこれを書いています。随時更新予定。 私の発表 最後の TCast がメインなのですがそれはソース参照 スライド1とHaskellソース ht…

PPL2009 のみかいにて

マジメな話は省略、主に自分の話だけメモ飲み会は2日目だけ参加しました。 kinabaさん→id:osiire さん、 「リストの重複を省く関数(多相的)を作るときに Setモジュールが使えない」 OCaml の Set モジュールが多相的に使えない問題。 let uniq xs cmp = let …

MacPortsでlablgtk2をインストールするときはFindlibに手動で登録しよう

背景 MacPorts は、 OCaml周りのいろんなライブラリのダウンロード・ビルド・インストールを "port install パッケージ名" 一発でこなしてくれる。 Findlib に、 OCaml のライブラリを登録しておけば、 "ocamlfind ocamlc -package パッケージ名" で パッケ…

OCamlの並行プログラミング拡張 concurrent cell

OCaml-Nagoyaの会にて、id:osiireさんの concurrent cell (OCamlの並行プログラミングの拡張) の話を伺った。 当日の話について詳しくは ocaml-nagoya : ivarの必要性 より。当初、問題そのものがちょっとよくわからなかったのだけど、要するに OCamlの標準…

wrap_abort の話 ()

OCaml (Concurrent ML?) の Event.wrap_abort という関数はちょっと面白い. val wrap_abort : 'a event -> (unit -> unit) -> 'a event wrap_abort ev fn returns the event that performs the same communications as ev, but if it is not selected the f…

Event.wrap_abort を π計算 で表現してみる その2

ひとつ前のエントリ でテキトーに作った abort 演算子を使って、OCamlプログラムのコード例を追ってみる。 open Event let start_server () = let in_ch = new_channel () in let rec loop () = let (x, ret_ch, nack_ch) = sync (receive in_ch) in loop (s…