coprime clock

coprime clock

http://dame.dyndns.org/misc/coprimeclock/

互いに素な時計です。針が互いに素な周期で回ります。例えば秒の時計は、3 秒に 1 周する長針、4 秒に 1 周する中針、5 秒に 1 周する短針の 3 本の針を持ちます (3 本とも真上を指した瞬間がジャスト 0 秒) 。分の時計は 3 分、4 分、5 分の 3 本、時の時計は 3 時間と 8 時間です。右端は 25 秒 * 27 秒 * 128 秒 (= 86400 秒 = 1 日) です。

頭の体操用に作りました。僕は分の時計を読むのに 1 分くらいかかります。

Ruby : Haskell = Python : OCaml

Dave Thomasのプレゼンより - Greenbear Diary

犬好きと猫好きがいるように、Ruby 好きと Python 好き、Haskell 好きと OCaml 好きがいる。そして、RubyHaskellPythonOCaml が好きな人は多いが両方が好きな人はめったにいない

なるほどなあ。以前から感じていた OCaml の不満が明確になった気分。

でも具体的に OCaml の不満を考えると、僕の場合はそこまで関係ない気もする?

  • 文法がださい。優先順位は変だし、in はどこに書いてもおさまりが悪いし、match 文の中に match を書くと汚くなるし。
  • 文字列処理が弱い。C での文字列処理と同じくらいストレスたまる。
  • print : 'a -> unit がない (致命傷の一つ) 。
  • 標準関数やライブラリの選定基準がよくわからない。ocamlc を書くのに便利な関数が多く採用されているに違いない。
  • オブジェクト指向いらない。
  • マニュアルや参考文書の日本語訳が直訳すぎて読みにくい *1これは Haskell もか。

それでも、今まで書いたプログラムでちょっと大きめのものは大抵 OCaml なんだよなあ。なんでだろう。

*1:しれっと言う。ocaml.jp の管理人助けて〜。