상품 종류
Product type프로그래밍 언어와 유형 이론에서, 유형들의 생산물은 구조에서 다른, 복합적인 유형이다. 제품의 "operands"는 유형이며, 제품 유형의 구조는 제품 내 피연산자의 고정 순서에 의해 결정된다. 제품 유형의 인스턴스는 고정된 순서를 유지하지만 그렇지 않으면 원시 데이터 유형의 모든 가능한 인스턴스를 포함할 수 있다. 제품 유형의 인스턴스(instance)를 나타내는 표현은 튜플(tuple)이 될 것이며, 이를 "튜플(tuple) 유형"이라고 한다. 한 종류의 제품은 두 가지 이상의 유형의 직접 생산물이다.
구성품종이 2종류만 있으면 '페어형'이라고 할 수 있다. 예를 들어, 두 가지 구성요소 유형 A와 B가 해당 유형의 가능한 모든 값의 집합인 경우, A × B로 작성된 제품 유형에는 쌍(a,b)인 요소가 포함되며, 여기서 "a"와 "b"는 각각 A와 B의 인스턴스(instance)이다. 쌍 유형은 종속 쌍 유형의 특별한 경우로, B 유형은 A에서 선택한 인스턴스에 따라 다를 수 있다.
많은 언어에서 제품 유형은 레코드 형식의 형태를 취하는데, 이 형식은 튜플의 구성요소에 라벨을 통해 접근할 수 있다. 대부분의 기능적 프로그래밍 언어에서와 같이 대수적 데이터 유형을 가진 언어에서, 하나의 생성자를 가진 대수적 데이터 유형은 제품 형식과 이형성이다.
Curry-Howard 통신에서 제품 유형은 논리적으로 논리적으로 논리적으로 접속사(AND)와 연관되어 있다.
그 개념은 임의의 유한한 유형(n-ary 제품 유형)의 산물로 직접 확장되며, 이 경우 해당 유형의 표현식의 튜플로 작용하는 표현들을 특징짓는다. 제품 유형의 퇴보 형태는 단위 유형이다: 그것은 어떤 유형의 제품도 아니다.
가치별 프로그래밍 언어에서 제품 유형은 첫 번째 구성 요소가 첫 번째 유형의 값이고 두 번째 구성 요소가 두 번째 유형의 값인 쌍 집합으로 해석될 수 있다. 요컨대 데카르트 제품이며, 종류 범주에 속하는 상품에 해당한다.
대부분의 기능 프로그래밍 언어는 제품 유형에 대한 원시적인 개념을 가지고 있다. 예를 들어, 타입의1 제품, ... 타입은n 타입이다1.*
...*
ML을 입력하여n (
타자를1 치다,
...,
타자를n 치다)
하스켈에서 이 두 언어 모두 튜플이 쓰여 있다. (
v1,
...,
vn)
그리고 튜플의 성분은 패턴-트래핑에 의해 추출된다. 또한 많은 기능적 프로그래밍 언어는 보다 일반적인 대수적 데이터 유형을 제공하며, 이는 제품과 합계를 모두 확장한다. 제품 유형은 합계 유형의 이중이다.
참고 항목
참조
- nLab의 제품 유형
- 호모토피 유형 이론: 수학의 단발적 기초, 단발적 기초 프로그램, 고등 연구 연구소. 섹션 1.5를 참조하십시오.