What is it, naokirin?

私の貧弱なOCaml力を晒す 第四回 「findlibと対話」

ターミナルで

$ ocaml

と叩くとOCamlインタラクティブシェルが起動します。

        Objective Caml version 3.12.1

# 

で、さぁてモジュール読み込もうと思ったときに「あっ、しまったぁ!インストールしたモジュール試したかったから、cmaファイル読み込ませないとぉぉぉぉ...いちいちやってらんないよぅ。 ダメだquitしよう; ;」。なんてことになったりします。いや、よくありました。

インタラクティブシェルでfindlibが使えると便利ですよねー。


であるんですね、これが。

知らなかったのかよ!って言いたくなりますよね。自分も知らなかったのかよ!って言いたいです。
インタラクティブシェルで

# #use "topfind";;

と入力すると、

- : unit = ()
Findlib has been successfully loaded. Additional directives:
  #require "package";;      to load a package
  #list;;                   to list the available packages
  #camlp4o;;                to load camlp4 (standard syntax)
  #camlp4r;;                to load camlp4 (revised syntax)
  #predicates "p,q,...";;   to set these predicates
  Topfind.reset();;         to force that packages will be reloaded
  #thread;;                 to enable threads

- : unit = ()
# 

となってfindlibがインタラクティブシェルで利用できるようになります。

たとえばOUnit試してみようかなぁというとき、(もちろんOUnitくらいはfindlibに登録されてますよね!)

# #require "oUnit";;
/usr/local/lib/ocaml/unix.cma: loaded
/usr/local/lib/ocaml/site-lib/oUnit: added to search path
/usr/local/lib/ocaml/site-lib/oUnit/oUnit.cma: loaded

これでOUnitが利用できるようになります。便利だよね!

最近は自分の自作ライブラリをテストコードとは別に試しで動かすときとかに使ってます。正直、ocamlfindに登録してから動かした方が動作確認がやりやすいので。