Haskell っぽい prelude.ml

prelude.mlHaskell っぽいイディオムで OCaml プログラムを書くためのモジュールです。
使ってません。ざぁっと見てみました。

  • Haskell にあって OCaml に無い関数群沢山定義
  • OCaml の stdlib にある関数名を Haskell 風の物に変更

まぁそんな印象です。前者はいいと思うのですが、後者に関しては Haskellian にしか利点はないような。あまりに Haskell like を目指しているので、サブモジュールを全く使わず、全関数を一つモジュールに載っけています。無限の荒野の様です。prelude.ml の 9000行目辺り*1からひゅーっと風が吹き込んでくるような切なさを感じて、試すのを止めました。どうせなら OCamlHaskell のいいとこ取りして欲しい。
ところで、

  • let (@....) f g w x y z = f (g w x y z)
  • let uncurry6 f (a,b,c,d,e,g) = f a b c d e g

こんなんわざわざ定義する意味あんの? 6-tuple なんてレコード定義するでしょう普通。

*1:unit テストがコメントとして書かれているから、長いのです。