プログラミング in OCaml メモ
print_endlineとprint_newline
8.3 制御構造 – 8.3.1 逐次実行
「;」の使い方について述べているところで、以下のようなコードがあった。
let print_hello s =
print_string "Hello, ";
print_string s;
print_endline (); (* <- 余計なセミコロン *)
let print_bye s =
print_string "Bye bye, ";
print_string s;
print_endline ();;
^^
Syntax error
これは、「;」を区切りとして使って、文の終わりとしては使わないようにという
ことなんだけど、以下のようにしてもエラーが出る。
「;;」は、なくてもかまわない。
let print_hello s =
print_string "Hello, ";
print_string s;
print_endline ();;
let print_bye s =
print_string "Bye bye, ";
print_string s;
print_endline ();;
Error: This expression has type unit but an expression was expected of type string
print_endline は、文字列の終わりに改行をつけて出力する。使い方は、こう。
print_endline "Hello";;
実行例
Hello
- : unit = ()
print_newline は、改行を出力する。使い方は、こう。
print_newline ();;
実行例
- : unit = ()
だから、上記コードは、こうなる。
let print_hello s =
print_string "Hello, ";
print_string s;
print_newline ();;
let print_bye s =
print_string "Bye bye, ";
print_string s;
print_newline ();;
実行例
# print_hello "Suzuki";;
Hello, Suzuki
- : unit = ()
# print_bye "Suzuki";;
Bye bye, Suzuki
- : unit = ()