20150426加筆 RWOの説明を書いた
20150422加筆 より細かく書いた
20210922加筆 もうこれトップに表示されなくてもいいかと思って日時を変更
20150909加筆 以下の内容はDebian 7向けに書かれており古いです! Debian 8ではより簡単にopamをインストール出来るようになっています! 下の記事では重複する部分は書きませんでしたが、インストール方法については下の記事が最新です。
なんかちょっとだけOCaml環境構築が面倒みたいな話があったので、構築手順を書く。
大体確かめられた手順なのでよいはず。
Emacsのインストールまで解説しますが、RWOを読み始めるにあたりエディタの設定は必ずしも必要ではありません。
楽しんで下さい。
Real World OCamlとは
おそらく最もヘビーにOCamlを使っているであろうJaneStreetのデベロッパが書いたOCamlの入門書です。書籍も出版されていますがHTML版が全てWeb上で読むことが出来ます。
内容は素晴らしいです。実用的な道具を使いながらOCamlの基本的な機能から発展的な機能まで紹介し、実用的なライブラリの使い方・内部のランタイムシステムの解説までします。
入門書としても素晴らしいと思いますし、OCamlユーザにとっても読む価値があると思います。
英語版しか存在しませんが、そんなに難しい英語ではないので英語ドキュメントが読み解けるレベルの英語力があれば問題無いと思います。
また標準の道具ではなく、実用的なツールを使うことを想定し、またそれに強く依存しています。結構な手順が必要ですがそんなに難しくありません!
というわけで必要な手続きを全部まとめたいと思います。
設定が面倒・英語は嫌という方はプログラミング in OCamlを強く薦めます!
素晴らしい入門書です。(関数型)プログラミングの基礎から学べます。
入門に最適で、この本を読み終えれば実用的なOCamlプログラムを作り始められると思います。
20150513 追記
WROを改めてみてみると、再帰関数について例が足りない気がします。
少し慣れている人以外は何か補完が必要かもしれません。
例えば以下の講義スライドの例を見てみるといいのかもしれません。
https://courses.engr.illinois.edu/cs421/sp2012/lectures/lecture2.pdf
VMのインストール
VMware Player とかで、Debianを入れる。
Ubuntuなどでもいいと思いますが、ここではDebianを使うことを仮定します。安定性大事ですよね。
OPAMのインストール
OPAMはOCamlのためのパッケージ管理システムです。OPAMを通してライブラリ・コンパイラ・ツールのインストール・管理をすることが出来ます。公式のツールではないですがデファクトスタンダードなツールだと思います。
apt-get
ではインストールすることが出来ないので、新しいレポジトリを追加してインストールしましょう。
ルート権限が必要なことに注意です。
wget http://download.opensuse.org/repositories/home:ocaml/Debian_7.0/Release.key
apt-key add - < Release.key
echo 'deb http://download.opensuse.org/repositories/home:/ocaml/Debian_7.0/' \
>> /etc/apt/sources.list.d/opam.list
sudo apt-get update
sudo apt-get install -y opam
opamの初期化とコンパイラインストール
opam init --comp 4.02.1
コンパイラのインストールが始まります。
同時に色々初期設定をするために対話的に色々きいてくる。基本的にYesと言っておけば良いです。
.ocamlinitを作る設定は必ずしておいたほうが良いです!
utop, coreのインストール
opam install utop core -y
RWOはcoreという強化標準ライブラリと、強化対話環境を使うことを仮定しています。一行でインストールできますよー。
.ocamlinitの設定
~/.ocamlinit
が作られて、#use "topfind"
と書かれていることを確認しましょう!
これは対話環境から外部ライブラリを呼び出すのをより便利にするために必要です!
Real World OCamlを読む
RWOは基本的にutop上で、以下を実行していることを仮定するので気をつける。
#require "core"
ディレクティブは上の#use "topfind"
がちゃんと効いてないと動かないので気をつける!
面倒なら下も.ocamlinitに書いてもいいです!ちょっとロードが遅くなりますが!
#require "core";;
open Core.Std;;
Emacs24.5のインストール
これよりおまけ。Debian 7
はapt-getで入れられるパッケージが結構古い。
Emacsも23しか入らないはず。
スーパーユーザー権限が必要なので注意。分からなかったらsu
を実行してパスワードを入力した後実行する。
wget -q -O - http://londo.ganneff.de/apt.key | sudo apt-key add -
echo "deb http://londo.ganneff.de stable main" >> /etc/apt/sources.list.d/emacs-snapshot.list
echo "deb-src http://londo.ganneff.de stable main" >> /etc/apt/sources.list.d/emacs-snapshot.list
apt-get update
apt-get install emacs-snapshot -y
# お好みでemacsという短縮名で起動できるようにするaliasを作成
alias emacs=emacs-snapshot-x
Tuareg-modeのインストール
Emacsでmlファイルのインデンテーションやカラーリングを行うためのプラグインを入れる。
あなたのEmacs設定ファイル(通常は~/.emacs.d/init.el
)に以下の設定を加える
(when (require 'package)
(add-to-list
'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize))
その後M-x install-package tuareg
で入る。
utopをEmacsから使う
せっていせってい。せっていを書く。
通常はutop
はemacsから呼び出すことを想定してないのでうまく動かないですが、それを動くようにします。
RWOはutop使うことを想定してますしね。
(setq opam-share
(substring (shell-command-to-string "opam config var share 2> /dev/null") 0 -1))
(add-to-list 'load-path (concat opam-share "/emacs/site-lisp"))
(require 'utop)
おわり
あとはちゃんとドキュメントを読む!
お好みでocp-indent
やmerlin
を入れましょう。