プログラミング in OCaml #3

プログラミング in OCaml (目次) - kengpong

(* 練習問題3.6 次の関数を定義せよ*)
(* 1. 2実数の相乗平均をとる関数 geo_mean *)
let geo_mean (x, y) = sqrt(x *. y);;

(*
 * 2. 名前(文字列)、身長(実数)、体重(実数)の組を受け取って
 * 「○○さんは痩せています」などの文字列を返す関 bmi
 *)
let bmi (name, height, weight) =
    let num = weight /. (height ** height) in
    let status =
        if num > 30. then
            "overweight"
        else if num > 25. then
            "normal"
        else
            "underweight"
       in
        name ^ ":" ^ status
;;

(* 3. 任意の整数 x, y に対し、 f (sum_and_diff (x,y)) が (x,y) を返す関数f *)
let sum_and_diff (x, y) = (x + y, x - y);;
let f (x, y) = ((x + y) / 2, (x - y) / 2);;

2. の問題は、最初日本語で出力しようと思ったのだけど、なんか上手くいかなかった。
その辺の日本語環境回りの事とかは、後々出てきたりするのかな?