PPLでの質問にも関連するのですが、意外と周知というわけでもないようなので、簡単にメモしてみました。MinCamlでも実装されていないことですし(某所のコンパイラ演習の課題にはなっていますし、私が学部4年生だったときの演習課題にもありましたが)、サーベイ論文やチュートリアルにするほどのことではないので…。もし私の勘違いがあったら是非ともご指摘を(実はそれが目的です)。 ML(やHaskellなど)には、たとえばOCamlの文法で let f x y = yと定義すると val f : 'a -> 'b -> 'b = <fun>と型推論され、 # f "abc" 123 ;; - : int = 123 # f 4.5 67.89 ;; - : float = 67.89のように任意の型の値に対して適用できる「多相関数」(polymorphic function)があります。JavaやC#