タグ

ocamlに関するunaristのブックマーク (6)

  • オブジェクトは OCaml の鬼子 - camlspotter’s blog

    前から言いたかったことでもあるので、釣られてみることにした。(長文) without objects!? より: 継承を使わないのは分かる。オブジェクト使わないってなんだよ!?多相レコード使いたい時にJSCの人々はどうやって書いてるんだ!? なんか、FP vs OOの構図でOO嫌いといいたいのかもしれないけど、こーゆー激しく誤解を生みそうな話を広めないでほしい。JSCの人々はせっかくすばらしい仕事して影響力あるんだから。 はい、OCamlにおけるオブジェクト、クラスはとっても大事だと思います。というか、オブジェクトなしでOCamlのプログラミングなんて考えられません。別に惹玖先生の肩を持つとかそーゆー意味でなく、純粋に技術的に。 これは誤解でも何でもありません。J社 ではオブジェクトは使っていないようです。Caml team でもまずオブジェクトは使いません。Jacques Garrigu

    オブジェクトは OCaml の鬼子 - camlspotter’s blog
  • 1モジュール1データ型主義 - camlspotter’s blog

    OCaml の「1モジュール1データ型スタイル」。このプログラミングスタイルは21世紀に入ってからモジュールを多用する OCaml コミュニティで流行りだしたもので私も採用しています。源流は SML 方面にあると聞きましたが…私自信は確認していません。要出典です。 「1モジュール1データ型スタイル」の意味するところは簡単です: データ型一つ一つにモジュールを一つ一つ作る。 モジュール名は型の意味する名前をつける。人なら Person。 モジュール内で定義するデータ型は常に t という抽象的な名前にする。 t を主対象とする操作はモジュール内で定義する。 ただし、全ての OCaml プログラムはこのように書かれるべし、というものでもありません。 例えば、 OCaml のコンパイラのソースコードはこのスタイルでは全く書かれていません。 「1モジュール1データ型スタイル」の利点は: モジュール名

    1モジュール1データ型主義 - camlspotter’s blog
  • http://proofcafe.org/~keigoi/pplss2012-ocaml.pdf

  • SML vs. Ocaml

    Standard ML and Objective Caml, Side by Side This page gives a quick side by side comparison of program fragments in the two ML dialects Standard ML ('97 revision) and Objective Caml (version 3.12). It is primarily targetted at people who need to convert code between the two dialects. Where suitable we also mention common extensions to SML, or recent extensions of Ocaml. The comparison does not co

  • NGK2013BでTwitter専用カーネルをOCamlで作る話をしてきました #ngk2013b - みずぴー日記

    毎年恒例のNGK2013B / 名古屋合同懇親会 2013忘年会で、Twitter専用のカーネルをOCamlで書く話をしてきました。 発表スライド 補足 OCamlプログラムをXen上で直接動作させるMirageを布教したかったので、ネタとしてキャチーな「Twitter専用OS」を選んでみました。 OS上で動作するほぼすべての処理をOCamlで書くため、余計なオーバヘッドが発生しないことや、OS全体の最適化が期待できること、広い範囲で型の恩恵が受けれるあたりがかなり熱いと思っています。 なお、類似のものとしてハイパーバイザー上でJVMを動作させるOSvや、GHCを動作させるHaLVM、Erlangを動作させるErlang On Xenなどがありあす。 関連リンク ソースコード openmirage :: home OCaml with MirageでXen/EC2上で動くOSを作る - Q

    NGK2013BでTwitter専用カーネルをOCamlで作る話をしてきました #ngk2013b - みずぴー日記
    unarist
    unarist 2013/12/22
    「例外が投げられるとOSが死ぬ」ってなんか懐かしい感じ
  • OCaml の type alias (type synonym) と non-parametric polymorphism - camlspotter’s blog

    OCaml では普通のデータ型の定義 (type t = Foo | Bar や type t = { foo : int; bar : float }) とデータ型の別名宣言 (type alias もしくは type synonym: type int2 = int * int) の区別が希薄になっています。 もちろん内部では違いがごっちゃになっているというわけではなく、バグがあるというわけではありません。ただ、問題は、type alias が新しいデータ型を作ってしまうこと。例えば上述の int2 は、int * int という型と暗黙のうちに変換可能な新たなデータ型として定義されます。(より格好良く言うと、型 int2 と 型 int * int は 単一化可能(unifiable)。) *1 これと、ML のモジュールシステムの隠蔽を組み合わせると、型の意味がモジュールによって変

    OCaml の type alias (type synonym) と non-parametric polymorphism - camlspotter’s blog
  • 1