osiire’s blog

ふしぎなそふとやさん

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

壁を侵略しなイカ?

http://partake.in/events/5784afd8-d43b-4cbe-9256-430d5ababa2bに参加でゲソ。この画像は、関数型イカ娘が触手を使って壁を侵略するゲームでゲソ。壁が下から上に強制スクロールするので、触手はそれを左右に避けて進むでゲソ!前にも見たことある人は気に…

Let’s module programming!

オブジェクト指向なら分かるけど、モジュールでどうやってある程度の規模のプログラムをするのか、全く想像つかない!そんな諸氏のためにモジュールプログラミングのテクニックを、レベル分けしながら解説してみたいと思います。 レベル1(基礎編) アプリケ…

ばあちゃん

金光のばあちゃんが、昨日朝方逝った。危ないと言われていたので先日急遽帰省して会ってきたが、やはりあれが最期となってしまった。餅つきをした正月、金光様の夏祭り、幼いころから大人になってからも我侭に生かさせてもらっている私には優しかったばあち…

モジュールとクラスの使い分け方

OCamlにはモジュールとクラスがあります。この二つの仕組みは、直感的によく似た機能を持っているので、どう使い分けたらいいのか迷う時があります。そこで、モジュールとクラスの使い分け方について少しまとめてみます。 基礎的なデータ/データ構造の場合 …

OCamlで作られている大きめのアプリケーション

LexiFi 金融商品の開発環境。 メイン言語がOCaml。MLFiという専用言語もOCamlで作られている。 http://www.lexifi.com/ http://www.lexifi.com/downloads/frisch_inria_2008-12-15.pdf XenServerのツールスタック(xapi toolstack) 仮想化サーバーXenのツール…

ダックタイピング...

OCamlでは、特定の関数を持っている型を作ってごにょごにょする方法はいくつかあります。 (*- row多相 *) # let touch animal : unit = animal#say;; val touch : < say : unit; .. > -> unit = <fun> (*- 構造的部分型 *) # class type animal = object method s</fun>…

first-class moduleをちょっと身近に

来るversion 3.12ではfirst-class moduleが導入されるわけですが、この機能はmoduleの世界を結構広げてくれます。しかし、その文法がやや煩雑で、真面目に使おうとすると疲れてしまう事が危惧されます。そこで、first-class moduleをお手軽に使えるcamlp4拡…

陶器のカタログ受発注の仕組みをAlloyで

仕事に関連して、とあるビジネスの仕組みを記述する必要があったので、Alloyで書いてみた。具体的には、 陶器を製造・販売している企業がたくさんいる。 その企業が集まってカタログを作り、そのカタログを見たお客さんから受注を受ける。 もちろん、カタロ…

関数型言語はGUIが苦手?

副作用を極力排除しようとするfunctionalな方向性の言語においては、GUIのような副作用の塊は扱えないという直観を持っている人も多いことでしょう。確かにfunctionalな言語でunit型を返す関数ばかり扱っていると、"普通に手続きを書いているのと何が違うの…

一級市民モジュール

Changesだけぱっと見ても分かりづらいので、OCaml Version 3.12で採用予定の一級市民的モジュールの文法だけさらしておきます。 # module type Seq = sig type 'a t val of_list : 'a list -> 'a t val map : ('a -> 'b) -> 'a t -> 'b t end;; module type …

PPL2010参加

毎年恒例のPPLに参加。e-mobileがまさかの圏外で仕事的にやや不都合だったけど、今年も色々な話が聞けて面白かったです。運営してくださった皆様、ありがとうございました。とりあえず感想がかけそうなものだけ書いておきます。 Towards Formal Construction…

SRFI-45

concurrent cellのFRPの実装においてfilterがメモリリークする問題があって、どうするべと悩んでいたのだけれど、まさに解決策があった。SRFI-45(http://srfi.schemers.org/srfi-45/)とその日本語訳(http://www.katch.ne.jp/~leque/translations/srfi-45/srf…

id:maoe氏が素晴らしい記事を書いていらっしゃる。FRPとは何?という方はぜひ読んでみると面白いと思います。 やさしいFunctional reactive programming(概要編) - maoeのブログ やさしいFunctional reactive programming(Event編) - maoeのブログ やさ…

地震

15年前の今日、私は岡山であの地震を経験した。しかし、地震だ!と飛び起きて最初に守りに行ったのは、自分でも親でもなく、自作プログラムの全てが保存してあった240MByteの外付けSCSI HDDだったとは、我ながら偏った高校生だったなと思う。お亡くなりにな…

ラジオボタンの相互依存をFRPで表現してみる

ラジオボタンが二つあったとしますと、片方が選択されればもう片方の選択は解除され、逆も然りです。このような相互依存的なロジックをFRP的なプログラムで表現してみましょう。(もちろんconcurrent cellで。) 下のプログラムは、jキーが押されるとradio_b…