17.4.23 実行の追跡

繰り返しを含むプログラムを作ると, 場合によってはプログラムが止まらなくなったりします. そのため, 多くのプログラミング言語処理系にはプログラムの実行過程を自動的に表示する機能があります.

Ocaml言語の処理系には, 関数を使って計算をするとき, また, 計算結果が求められたときに画面上にメッセージを出す機能があります. 例えば #trace sum;; return2 と入力すると, sumという関数が使われたときにメッセージが表示されます.

例えばsum(3)の計算であれば, sum(2), sum(1), sum(0) と順に計算が進められ, それぞれが0, 1, 3, 6という答えを出して行く様子を見ることができます.

# #trace sum;; return2 sum is now traced. # sum(3) ;; return2 sum <-- 3 sum <-- 2 sum <-- 1 sum <-- 0 sum --> 0 sum --> 1 sum --> 3 sum --> 6 - : int = 6 #