type t (* void *)

ソフトウエアのこととか

ポエム: 新しい言語を学ぶためには旧来言語を知らないとな!!!

カンスウガタ?ケンロン?やっぱり新しいものをやろうと思ったら 旧来のものとの比較をしないとわかったことにならないらしいのでやらないとね!!!!!!!

わお、そういえば僕RubyとかJavaとかも使うしそっちについても考えてみなきゃ。

続きを読む

OCaml: どうやってファンクタをコンパイルしているのか

小ネタ。OCamlの複雑な機能の中にファンクタというものがあります。
これをどういうふうにコンパイルしているのか見てみましょう。

結論からいうと、

  • OCamlのモジュールというのはただのレコードである。
  • ファンクタはレコードを受け取ってレコードを返すまさに関数である

です。

続きを読む

OCaml: 例外ハンドリングと末尾再帰、などなど

元ネタはこちら

TCOと例外ハンドル | κeenのHappy Hacκing Blog

これを機械語レベルで理解したく、OCamlで検証してみることにしました。
同じベンチマークコードではなく機械語を読みやすくするためにシンプルな例にしてます。 ちなみになんか当たり前の結果になったので分かってる人は読まなくていいと思います :)

続きを読む

OCaml: RWOを読み進めるためのOCaml設定

20150426加筆 RWOの説明を書いた
20150422加筆 より細かく書いた
20210922加筆 もうこれトップに表示されなくてもいいかと思って日時を変更

20150909加筆 以下の内容はDebian 7向けに書かれており古いです! Debian 8ではより簡単にopamをインストール出来るようになっています! 下の記事では重複する部分は書きませんでしたが、インストール方法については下の記事が最新です。

no-maddojp.hatenablog.com

なんかちょっとだけOCaml環境構築が面倒みたいな話があったので、構築手順を書く。
大体確かめられた手順なのでよいはず。

Emacsのインストールまで解説しますが、RWOを読み始めるにあたりエディタの設定は必ずしも必要ではありません。
楽しんで下さい。

続きを読む