読者です 読者をやめる 読者になる 読者になる

WindowsでOCamlを学ぶ環境を作るメモ

前々からやろうと思っていたOCaml学ぶ環境を整えました.WindowsOCamlはつらいという話をよく聞きますが,入門する程度には問題ないでしょう.
ちなみに読もうとしている本はプログラミング in OCamlです.
プログラミング in OCaml 〜関数型プログラミングの基礎からGUI構築まで〜 | Gihyo Digital Publishing … 技術評論社の電子書籍

僕の使っているEmacsはGnuPack11.00のものなのですが,windows側で設定されたパスをうまく引き継いでくれません.いくつかのパスを手で設定してやる必要がありましたので,メモしておきます.

処理系のインストール

ここでインストーラをダウンロードできます.インストール時にはcygwinをインストールするか聞かれますが,僕はインストールしませんでした.
The OCaml installer for Windows

Emacsの設定

tuareg-modeというのが良く使われているそうです.
GitHub - ocaml/tuareg: Emacs OCaml mode

インストールした後は以下の記事を参考に設定しました.
Emacsでocamlを書く設定 - 雑記

(add-to-list 'auto-mode-alist '("\\.ml[iylp]?" . tuareg-mode))
(autoload 'tuareg-mode "tuareg" "Major mode for editing OCaml code" t)
(autoload 'tuareg-run-ocaml "tuareg" "Run an inferior OCaml process." t)
(autoload 'ocamldebug "ocamldebug" "Run the OCaml debugger" t)

基本的な設定が済んだら.mlファイルを開いた状態でC-c C-s (tuareg-run-ocaml)でOCaml toplevel to runというプロンプトでコマンドを聞かれた後にREPLが起動します.
パスが通っていない場合はそのまま動かないので以下の設定のうちどちらかを加えます.

;;パスに加える.
(add-to-list 'exec-path "path/to/OCaml/bin/")
;;プロンプトの初期値を設定する.
(setq tuareg-interactive-program "/path/to/OCaml/bin/ocaml")

起動後にexception typetexp.errorといったエラーが出る場合は恐らくライブラリへのパスが通っていませんので環境変数を設定してやります.

(setenv "OCAMLLIB" "C:/tools/OCaml/lib")

一応環境が整いました.
f:id:soma_arc:20160406133936j:plain