Kick start Programming OCaml

静的型付け非純粋関数型言語OCamlを始めてみる,なメモ.

じつはあまり静的型付け言語はすきじゃなかったりする...おおおおおおおおお



MacOSX SnowLeopardに処理系を入れ,emacsをセットアップする.

インストール

OCamlの日本語ページからダウンロードできるパッケージを選択する.

ぼくはocaml-3.11.1を選択.

$ cd src
$ curl -O http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.1.tar.gz
$ tar xvf ocaml-3.11.1.tar.gz
$ cd ocaml-3.11.1
$ ./configure
$ make world.opt
$ sudo make install

というかんじ.

$ ocaml

が実行できればおk.

emacsの設定

ocamlパッケージ付属のocaml-modeは使いづらいらしいのでTuaregModeを導入する.

$ cd site-lisp
$ curl -O http://www-rocq.inria.fr/~acohen/tuareg/mode/tuareg-mode-1.45.6.tar.gz
$ tar cvf tuareg-mode-1.45.6.tar.gz
$ cd tuareg-mode-1.45.6

で,とりあえず,中に入ってる.elファイルをコンパイルしようとしたんだけどエラーが出る.

ad-substitute-tree: Lisp nesting exceeds `max-lisp-eval-depth'

調べてみると,関数内での関数呼び出しの制限らしい.それを考慮して.emacsに項書き足す.

;; expand max-lisp-eval-depth
(setq max-lisp-eval-depth 10000)

;; tuareg-mode (for ocaml)
(push "/Users/yamaneko/.emacs.d/lisp/tuareg-mode-1.45.6" load-path)
(autoload 'tuareg-mode "tuareg" "Major mode for editing Caml code" t)
(add-to-list 'auto-mode-alist '("\\.ml$" . tuareg-mode))

で,これでbyte-compile-fileすると,sym-lock.el以外はなんとかコンパイルできる.うう...

とりあえず,これでプログラムを書ける状態になった.

参考文献