今日もocaml勉強。
ちょっと基礎からやることにしよう。
(* 標準入力から一行ずつ読み込んで表示する *)
let rec mycat line = begin
print_endline line;
mycat (read_line ())
end;;
try
mycat (read_line ())
with
End_of_file -> None
;;
感想
* print_endlineという「出力&改行」という関数があるよ。
* 例外を補足して終了か、、、うーん、もっといい手はないだろうか。
* mycat (read_line ()) を、haskell風に mycat $ read_line () のように書けないものだろうか。。。
参考までにPythonだと以下の通り。(しかしこれはちょっと手抜きだな)
#標準入力から一行ずつ読み込んで表示する
import sys
for line in sys.stdin:
print line[:-1]
邪道だがほぼ一行にするなら以下でもよい。
import sys
map(sys.stdout.write, sys.stdin)
うーん、このPythonのコンパクトさに、自分のocaml能力が追いつくのはいつの日か、、、。