2012-03-01 8 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과 함께 다형성 일 수 있지만 함수 매개 변수는 수 없습니다. –