2012-03-01 3 views

答えて

10

上位ランク(すなわち、「ファーストクラス」)の多型を含むもの。たとえば:

lambda f : (forall A. A -> A). (f Int 1, f String "hello") 

この機能は、すべてのポリモーフィック型のスキームが「prenex」形式(つまり数量詞は外側だけで発生する可能性がでなければなりませんHMで表現できませんタイプ(forall A. A -> A) -> Int * Stringを、持っているだろう、ネストされたことはありません)。

+3

この式は関数ではありません。定義(letを使用してバインドされた)はHMと多形性を持つことができますが、関数パラメータではできません。 –

関連する問題