読者です 読者をやめる 読者になる 読者になる

高階関数の数

Rubyのシンタクスがバランスが取れていて良い、という結論そのものには、特に異論ありません。

taw's blog: Syntactic tradeoffs in functional languages
Matzにっき(2007-05-12)

OCamlの場合は、関数を複数受け取るような関数を定義する場合には、Functorを使って構成するのが普通なので(多分)、ちょっと弱いかも、とか思っちゃいます。オブジェクトもそういう風に使えますよね。例えば、Schemeの方が例としては適切かも。Haskellは型クラスを使うんでしょうから、やっぱり数えるのは大変そう。

OCamlにそういう機能(Functorとかオブジェクトとか)がある、ということが、既に「高階関数の関数引数は、フツー、一つだけ」という主張の根拠になるという見方はできると思います。逆に、Rubyにもオブジェクトを一つだけ使うような機能が欲しい、ということになりそうな感じも(実際ちょっと欲しい:まああんまり頻繁にある要求ではないので、特異メソッドで十分、という意見はもっともだと思います)。


CamlinternalOOはもろ内部向けのモジュールですし、FormatやPrintfもかなりOCamlの中では魔法的なモジュールなので、通常プログラマが思う高階関数とはちょっと違う。(もっと減りました。)