보편적으로 정량화 된 유형 : 가 하위 유형인지 또는 동일한 시그니처 를 갖는 존재 적으로 정량화 된 타입 의 특별한 경우 :T a = ∀ X : { a ∈ X , f : X → { T , F } }
"yes"라고 말하고 싶습니다. "모든 X"( )에 해당하는 것이 있으면 "일부 X"( ) 에도 해당되어야합니다 . 즉, ' '이 있는 명령문 은 단순히 ' ' 있는 동일한 명령문의보다 제한된 버전입니다 .
내가 어딘가에 잘못인가?
배경 : 왜 이런 질문을합니까?
"추상 [데이터] 유형에 존재하는 유형"이있는 이유와 방법을 이해하기 위해 존재 유형을 연구하고 있습니다 . 이론만으로는이 개념을 잘 이해할 수 없습니다. 구체적인 예도 필요합니다.
불행히도, 대부분의 프로그래밍 언어는 실존 유형에 대한 지원이 제한되어 있기 때문에 좋은 코드 예제를 찾기가 어렵습니다. (예를 들어, Haskell
forall
또는 Java?
와일드 카드 ) 보편적으로 정량화 된 유형은 "일반"을 통해 많은 최신 언어에서 지원됩니다.더 나쁜 것은 제네릭이 존재 유형과 쉽게 혼합되어 존재 유형 을 보편적 유형과 구분하기가 더 어려워지는 것 같습니다 . 이 믹스 업이 왜 그렇게 쉬운 지 궁금합니다. 이 질문에 대한 대답은 다음과 같이 설명 할 수 있습니다. 범용 유형이 실제로 존재하는 유형의 특수한 경우 인 경우, Java 유형과 같은 일반 유형이
List<T>
어떤 방식 으로든 해석 될 수 있다는 것은 놀라운 일이 아닙니다.
forall x. P(x)
다음 exists x. P(x)
. 유형 시스템을 검사 할 때 유형 시스템이이를 고려하는지 여부는 모르겠습니다. 흥미로운 질문은 +1입니다.