プログラミング in OCaml #0

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

(* 練習問題 3.1 *)

(* USドルを受け取って円に換算する関数 *)
let dollar2yen dollar =
    let rate = 114.32 in
    int_of_float (floor (dollar *. rate +. 0.5))
;;

(* 円を受け取ってUSドルに換算する関数 *)
let yen2dollar yen =
    let rate = 114.32 in
    (floor ((float_of_int yen) *. 10. /. rate +. 0.5)) /. 10.
;;

(* USドルを受け取って文字列を返す関数 *)
let dollar2yen_string dollar =
    let dollar_string = string_of_float dollar in
    let yen_string = string_of_int (dollar2yen dollar) in
    dollar_string ^ " dollars are " ^ yen_string  ^ " yen."
;;

(* 文字を受け取ってアルファベットなら大文字に、その他はそのまま返す関数 *)
let capitalize c =
    let c_int = int_of_char c in
    if c_int > 96 && c_int < 123 then
        char_of_int (c_int - 32) 
    else
        c
;;