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

改造 GCaml の書き直しもしくは $Caml #3: $-abs unification を制御する

さて、じゃあ今度は plus と minus を同時に使ってみましょう。 毎度あんまり面白くない例ですが、x + x - x を計算する(つもりの)関数 id を、前回の plus を参考に書いていみます: let plus : $:(d : 'a -> 'a -> 'a) = d let minus : $:(d : 'a -> 'a -> …

今日のOCaml RSS

Type-safe Unmarshalling for Objective Caml http://www.pps.jussieu.fr/~henry/marshal/index.en.html This type-safe unmarshalling does not need any modification of the OCaml runtime, and in particular uses the current format of marshalled val…

また嫌な季節がやってきた

Job

先物売買してる奴らが俺の名前を連呼する季節になった。ビクビクである。 もちろん向こうはこっちに興味があるわけじゃなくて、六月が期日の先物に用があるだけである。 アメリカ人は Jun(ジュン) という名前をまあまあ正しく発音してくれるが、それでも Jun…

改造 GCaml の書き直しもしくは $Caml #2: $-args を使って見る

えっとどこまで話したっけ? ああ、$付きラベル引数($-arg)がどういう風にコンパイル(というか program transformation) されるかでした。省略可能引数と関数抽象で dispatch を実現しますと言うところまでだった。 じゃあ、実際にそれを使って見ましょう。 …

パッチ置いといた

パッチはここよ。 リリース段階でも何でもないので。期待しないほうが良いです。コンパイルの仕方は 慣れ 根性 コンパイルできた場合は今までのエントリと gcamltests/*.ml から推測してみて下さい。うまく動かない場合は、おかしいなー、などと思わずに、即…

改造 GCaml の書き直しもしくは $Caml #1: dispatch 周り

まー要するに何かといいますと、type class の dictionary passing とか、GCaml の flow graph dispatch とか、SML# の polymorphic レコードの index passing とか、結構似ているので、dispatch だけ、それを何に使うか特化せずに書いてみたわけ。んでもっ…

改造 GCaml の書き直しもしくは $Caml #0

型レベルプログラミングの会に参加して昔の仕事を色々いじっている内に、いろいろと思うところあって GCaml を再生産しています。といっても取り合えずは型レベル方向じゃ無いのですいません。六年も前にやったことって人間覚えていない、というか、意識的に…

時代は今、Curses へ

caml-list より: Dear caml-list,I'm writting a program and I'd like to set up a menu in a terminal.I'd like to learn from your experience and if possible to be put in a good direction. I'm studying the Curses module but there is a lack of d…

今日のOCaml RSS

なんだか最近新しい話題が多いので気が向いたエントリはまとめておくことにした。 [Caml-list] [ANN] Diamondback Ruby - Program Analysis for Ruby http://www.cs.umd.edu/projects/PL/druby/ Diamondback Ruby (DRuby) is an extension to Ruby that aims…

今日のOCaml RSS: ocamljs と ocaml-lastfm

ocamljs http://code.google.com/p/ocamljs/ Ocamljs compiles OCaml to Javascript. It uses the standard OCaml front-end, so the full language is supported (the object system is partially supported, should be fixed soon).Included are several l…

改造: type class っぽいのもおk

module Num : sig type 'a t val (+) : $:'a t -> 'a -> 'a -> 'a val (-) : $:'a t -> 'a -> 'a -> 'a val int : int t val float : float t end = struct class type ['a] _t = object method plus : 'a -> 'a -> 'a method minus : 'a -> 'a -> 'a end ty…

改造: こんなことが出来るようになった

module Add : sig type 'a t val (+) : $:('a t) -> 'a -> 'a -> 'a val int : int t val float : float t val string : string t val int32 : int32 t end = struct type 'a t = 'a -> 'a -> 'a let (+) $:d = d let int = Pervasives.(+) let float = (+.)…

アポ無し面接

は摘み出されます。海外の友達から聞きました。セキュリティには面接のアポがあると嘘言って入ってきたんだって。そんなキモい嘘吐き野郎誰が採用すんねん。まー、そういう事です。

ついさっき妻が家の中に閉じ込められた話の続き

有言実行: 薔薇を買ってったら妻もトルコ桔梗を買っていた。和服は安物ダヨ。 しかし配偶者に花を買って帰るって発想はなかった。さすが北欧人!おれに思いもつかない事を平然と言ってのけるッそこにシビれる!あこがれるゥ!皆様もお試しください。ただし、…

ついさっき妻が家の中に閉じ込められた話

たった今、妻が電話を掛けてきて、何かの拍子に部屋に閉じ込められたと言ってきた。窓を開けて掃除してたら風が吹いたかなんかでドアが独りでに閉まって、その拍子になんかドアノブがおかしくなり、全然開かないらしい。幸い携帯を持っていたから連絡してき…

就活中の人がブログでいろいろ書いちゃうことについて

私の就活してた時の経験では、募集した人のウェブページとか、ブログとか、積極的には探されてるような事はあまり無いと思います。でも、見つけられた場合は、ざっとは読まれるみたい。あまりにウェブの内容が際立っている場合は(良い方にも悪い方にも)考え…

NHK スペシャル: マネー資本主義

Job

『マネー資本主義』って用語あるの? なんかNYCで俺が住んでた家の近く(というかNYSEの近く)でスーツ来た人たちが大挙して、こうもり傘で空中浮遊するっていう特撮映像が弾けた感じで良かった。こんな感じ: このマグリットの絵はポスターで持ってたんだけど…

昔の仕事を引っ張り出してみる。

id:ytqwerty さんが GCaml での type level programming の可能性にチャレンジされていた。正直六年前の事なので覚えていない事が多いし、そもそも type level programming をするつもりの拡張じゃないのでいろいろアレだが勘弁してほしい。全ソースは最後に…

型レベルなんちゃら

懇親会の四人席の内三人が理学部兄弟だったので、残る灯台の id:wpw を偉い子ね、偉い子ねと褒めることが出来た。褒める教育。教育者として嬉しい限りだ。 その兄弟のうち、サイボウズラボのMさんは同じ時期にRIMSに居たのにお互い面識が無かった。改めて亡…

Ruby Strikes Back, then Fails

from Ruby Strikes Back: http://oldmoe.blogspot.com/2009/04/ruby-strikes-back.html ConclusionRuby is faster the OCaml. Wrong! OCaml is a lot faster than Ruby. But thanks to hard work by some prominent Rubyists you can have a Ruby setup that…

recursive module で polymorphic recursion を書く

OCaml 3.12.0 より明示的に型を書くことで polymorphic recursion (多相再帰) が簡単に書けるようになりました: let rec len : 'a. 'a sep -> int = function | Nil -> 0 | Cons (_, sep) -> 1 + 2 * len sep let rec ... in ... で定義される値は、in の後…

let module は expansive ?

# let id = let module M = struct end in fun x -> x ;; val id : '_a -> '_a = <fun>なんでですか?あんまり考えてないってのもあるけど、ヤバイ例が思いつきません。Caml mantis でも、 What you propose is changing the value restriction to accept a local</fun>…

三菱UFJ証券、社員が5万人分の情報売却 業者に32万円で

妻の情報が漏れました。今日の夕刻、プレス発表前のにとりあえずの報告電話があったそうです。「お詫び状」を発送したそうですから、明日当たり、もう少し詳細が判るでしょう。 転売先でのデータ破棄を約束させているそうですが、そんな話信用するほど馬鹿じ…

OCaml job at MyLife

マウンテンビューで OCaml 書きたい人はどぞー: http://groups.google.com/group/fa.caml/browse_thread/thread/c4dec74b901191b1?pli=1 うーん、でも何かこの会社のサービス、会員登録しようとしたら ZIP コード必須だし、無料サービスほとんどないし、残念…

糞言語

my my my my ウルセェーっ、なんとかしろ! じゃあ use strict 使えば って誰かが言いやがった。そいつを信じて使ってみた。 my がデフォルトになるんじゃなくて、my の付け忘れを教えてくれるだけ だった。my my my my 書く事が日常化してて何の疑問も持た…

改造中

$label が省略された場合、外側の let で自動的に $-abstract される。 # let f $x y = x,y;; val f : $x:'a -> 'b -> 'a * 'b = <fun> # let g = prerr_endline "hello"; f 1;; (* let g $x = prerr_endline "hello"; f $x 1 になる *) val g : $x:'a -> 'a * in</fun>…

山手線が止まる

こんな天気のいい金曜日の朝に電車に飛び込む人って、、、 姜尚中先生の仰ること(http://r25.jp/b/honshi/a/long_interview_details/id/1022007031501_02)は尤もだし、そう思う一方で、 微動だにしない駅の人垣とかに揉まれると、やっぱり「この忙しい朝に何…

次バージョンから、OCaml のランタイムが HLVWになることに決定

本日、OCaml チームの内部ディスカッションメーリングリスト caml-dev で、次の OCaml のバージョン(3.1415) から、現行のバイトコードコンパイラを廃止して、その代わりに Jon Garrop 氏の開発する HLVW へのバイトコードコンパイラを提供すると OCaml コン…