9.2 Toplevel directives

トップレベルの動作をコントロールする識別子一覧です。ファイルをメモリにロードしたり、プログラムの実行をトレースしたりします。

注意: 識別子はすべて # (シャープ) で始まります。この識別子の前の # は自分で入力してください。対話式ループが表示するプロンプトではありません。例えば #quit;; と打つとトップレベルループは終了しますが、quit;; と打つと ``unbound value quit'' とエラーが出ます。

#quit;;

トップレベルのループを抜け、 ocaml コマンドを終了します。

#labels bool;;

引数が false だったら関数型のラベルを無視するようになります。true だったらデフォルト動作 (commuting style) に戻します。

#warnings "warning-list";;

引数を見て警告を有効/無効にします。

#directory "dir-name";;

ソースファイルやコンパイル済みファイルを検索するディレクトリのリストに与えられたディレクトリを追加します。

#cd "dir-name";;

カレントディレクトリを変更します。

#load "file-name";;

バッチコンパイラ ocamlc が生成したバイトコードオブジェクトファイル (.cmo) をメモリにロードします。(訳注: .cmaも可能)

#use "file-name";;

与えられたファイルからソースフレーズを読み込んでコンパイルして実行します。これは原文をそのまま取り込んで、標準入力から打ち込んだのと同じように処理されます。最初にエラーが発生した時点でファイルの読み込みは終了します。

#install_printer printer-name;;

この識別子は printer-name という名前の関数を、その関数が引数にとる型の値を表示する関数として登録します。 そういう値を表示するとき printer-name がトップレベルから呼ばれます。

表示の関数 printer-nameFormat.formatter -> t -> unit という型を持ち、t が表示する値の型になります。 この関数は Format ライブラリにある関数を使用して、指定されたフォーマットで型 t の値をテキスト表記して表示します。 過去の互換性として、 printer-name には t -> unit という型を持ち、標準的なフォーマットで表示を行う関数を登録することもできますが、この使用法は推奨されません (deprecated) 。

#remove_printer printer-name;;

トップレベルのプリンタテーブルから与えられた名前の関数を取り除きます。

#trace function-name;;

この指示語を実行したら、'''function-name'''という名前の関数の呼び出しをトレースします。呼び出しごとに引数と評価結果や関数を脱出した例外を表示します。例外はその関数自身から発生したものか、その関数がさらに呼び出した先の関数から発生したもののどちらかです。関数がカリー化されていたら、関数に渡されたようにそれぞれの引数が表示されます。

#untrace function-name;;

指定された関数のトレースをやめます。

#untrace_all;;

今までトレースしていたすべての関数のトレースをやめます。

#print_depth n;;

値を表示する最大の深さを n に制限します。値のこの深さを超えた部分は ... のように省略表記されます。

#print_length n;;

値のノードの表示する数を最大 n に制限します。値の残りの部分は ... のように省略表記されます。