OCaml プログラミング入門


インストール

Linux (や他の UNIX 系) の場合

ソースからコンパイルする方法
  1. http://caml.inria.fr/ocaml/distrib.html から、Source distribution と書いてあるものを取って来る。(そして、それを /tmp に保存したとする)
  2. cd /tmp
  3. tar zxvf ocaml-3.06.tar.gz もしくは gunzip -c ocaml-3.06.tar.gz | tar xvf -
  4. cd ocaml-3.06
  5. ./configure
  6. make world
  7. make bootstrap
  8. make opt (オプショナル)
  9. make opt.opt (オプショナル)
  10. make install (root になってから)

6 〜 9 を全部やってくれる、make world.opt というオプションもあるようですが、エラーが出た場合にどこまでできたかよくわかりません (version 3.06)

Debian 系

root になって、apt-get install ocaml-native-compilers とかかな。他にも dpkg -l '*caml*' で表示されるパッケージを色々と入れてみ ると良い (^^;。ただし、camlp4 など、ocaml 自体に組込まれて、無用となった パッケージなどもあるので注意。 ちなみに、私の環境では以下のパッケージが入っているようである:

ii camlidl 1.02-6 Stub code generator for Objective Caml ii camlidl-doc 1.02-6 Documentation for CamlIDL ii camlp4-doc 3.02-1 documentation for camlp4 in ps and html format ii ocaml 3.04-9 ML language implementation with a class-based object system ii ocaml-base 3.04-9 Runtime system for ocaml bytecode executables ii ocaml-core 3.04.1 Objective CAML (metapackage) ii ocaml-doc 3.04-3 Documentation for Objective Caml and Camlp4 ii ocaml-findlib 0.6.2-2 Management tool for OCaml programming language modules ii ocaml-native-compilers 3.04-9 Native code compilers of the ocaml suite (the .opt ones) ii ocaml-source 3.04-9 Sources for Objectif Caml ii ocaml-tools 2002.02.11-1 Various tools for ocaml programmers ii ocamltk 41.8-1 a library for interfacing Objective Caml with the tcl/tk ii ocamlweb 1.3-1 literate programming tool for Objective Caml

RedHat 系

適当な rpm を持ってきて、root になって rpm -ivh ocaml-XXXXXX.rpm (XXXXXX の部分はディストリビューションによって違う

Windows

ソースから

Cygwin があれば、Linux (や他の UNIX 系) と同様にして、ソースからでも コンパイルできます。ただし、結構 cygwin のバージョンによってはうまく行かない場合があるそうなので、 動作確認の取れたバージョンでやるのが吉かと。(私は問題が起きた事が無いですが)

precompiled binary

Native Win32 port は、ダウンロードして実行するだけかな。

MacOS

ソースから

MacOSX の場合は、Linux (や他の UNIX 系) と基本的に同様であるが、 バグがあるため make opt.opt がうまくいかないそうだ (あまり必要ないので飛ばしても良いと思われる)。また、

がインストールされている環境では、./configure のかわりに、 ./configure -tkdefs -I/sw/include -tklibs -L/sw/lib とすると、labltk と言う tcl/tk を使うグラフィックスライブラリも使えるようになるそうである。

便利な開発環境を整えよう

プログラムを開発する上で便利なツール類を紹介します。もちろん私の好みに偏っています。

OcamlMakefile

一つのファイルならまだ良いのですが、 複数のファイルからなる、ある程度の規模のプログラムを作っている時、 「どのファイルにはどういうオプションつけるんだっけ?」とか 「どのファイルがどれに依存していて、どれを先にコンパイルしないとい けないのかな」、などと考えるのは非常に面倒です。 OCamlMakefile を使えば、Makefile に数行、ソースファイルの名前を書くだけで、 自動でやってくれます。 (最後のリンクのために、依存の順番を正しく書いてないといけませんが...)

tuareg-mode

Emacs 使いのため。ocaml にデフォルトでついてくる emacs 用の ocaml-mode はいまいち使い勝手が良くありません。 tuareg-mode をお勧めします。 インストールして、.emacs に次の事を書いとけば良いです:

(setq auto-mode-alist (cons '("\\.ml\\w?" . tuareg-mode) auto-mode-alist))
(autoload 'tuareg-mode "tuareg" "Major mode for editing Caml code" t)

ledit

OCaml の対話的環境を提供するコマンド: ocaml は ライセンス上の問題から、 C-a で行頭に戻ったりする事や、ヒストリ機能、 などと言った GNU の readline ライブラリを使った便利な機能がありません。 emacs から対話的環境を使うのが一つには考えられます が、どうしてもターミナルから実行したい人は、 ledit と言うコマンドを使えば大丈夫です。 ledit ocaml と起動するだけです。