ネタばらし(csort.ml)
標準入力の文字列を昇順に並べ替える問題. m.ukaiさん曰く,
トップはどうなってるのかさっぱり分かりません。とのことでしたが,大したテクニックがあるわけではないので公開してしまいます. というか,私のコードは m.ukai さんのとほとんど同じものです. 要は,
Sort
モジュールの存在を知っているかどうかという問題で,
List.sort : ('a -> 'a -> int) -> 'a list -> 'a list
の代わりに
Sort.list : ('a -> 'a -> bool) -> 'a list -> 'a list
を使えば,let rec f l=try f(input_char stdin::l)with _->List.iter print_char(Sort.list(<)l);;f[]と,大幅に短くできるという話でした. [追記]
input_char
を使う代わりに Stream
モジュールを駆使するとまだ短縮します.
delete blank linesの方の1Bは何とかなったので,サーバが復旧次第提出しておきます.