17.4.8 変数を使って式を整理する

変数を使って,「40人の学生が, 1時間のうち50分働き10分休むというペースで, 1日10時間働くことを30日間続けた場合ののべ秒数」の計算式を書き直してみましょう.

# let seconds_per_minute = 60;; return2 (* 一分間の秒数 *) val seconds_per_minute : int = 60 # let minutes_per_hour = 50;; return2 (* 一時間あたりの働いた分数 *) val minutes_per_hour : int = 50 # let hours_per_day = 10;; return2 (* 一日あたりの働いた時間数 *) val hours_per_day : int = 10 # let days = 30;; return2 (* 働いた日数 *) val days : int = 30 # let students = 40;; return2 (* 学生数 *) val students : int = 40 # seconds_per_minute * minutes_per_hour return2 * hours_per_day * days * students;; return2 - : int = 36000000 #

変数を使ったことで式は長くなりましたが, 計算の意図は前よりもはっきりしましたね.

最後の式は長くなったので2行に分かれていますが, Ocaml では複数の行にまたがった式を書いても構いません. キーボードから式を入力している場合は, ;; return2 が入力されるまでが1つの式として扱われます.

では, 1時間あたりの休憩を5分短くして(つまり1時間あたり5分余計に働き), 3人学生を追加した場合ののべ秒数を計算してみましょう.今度はどこに3や5を足すかがすぐに分かりますね.

# seconds_per_minute * (minutes_per_hour+5) return2 * hours_per_day * days * (students+3) ;; return2 - : int = 42570000 #

練習として, 次のような場合の計算式を変数を使って書いてみて下さい.

どのような変数を用意すると意図がはっきりした式を書くことができるでしょうか?