행 다형성

Row polymorphism

프로그래밍 언어 유형 이론에서 행 다형성은 기록 필드 유형(행이라고도 하며, 따라서 행 다형성)에 다형성이 있는 프로그램을 작성할 수 있는 다형성의 일종이다.행-폴리모픽 타입 시스템과 형식 추론 증명은 미첼 완드에 의해 도입되었다.[1][2]

기록 및 기록 유형

A record value is written as , where the record contains fields (columns), are the record fields, and are field values.예를 들어, 3차원 데카르트 포인트를 포함하는 레코드는 t ={ x= ,y= 2,= 로 쓸 수 있다

행-폴리모픽 레코드 타입은 { 1: ,… , n: , (f ),( ) , \} 로 작성된다., where possibly or . A record has the row-polymorphic record type whenever the field of the record has the type = n 필드가 {\f_}(= m 필드가 없다.행-폴리모픽 변수 은 기록에 i 이 아닌 다른 필드가 포함될 수 있다는 사실을 나타낸다

행-폴리모픽 레코드 타입은 레코드의 한 부분에서만 작동하는 프로그램을 쓸 수 있게 해준다.예를 들어 :{ : ,y : , }→ { : , : } {\text\}}}}은(는) 일부 2차원 변환을 수행하는 기능이다.행 다형성 때문에 함수는 3차원(사실 n차원) 점에 대해 2차원 변환을 수행할 수 있어 z 좌표는 그대로 둘 수 있다.또한 이 함수는 유형의 x{\ y }을(를) 포함하는 모든 레코드에서 수행할 수 있다 정보 손실은 없었다는 점에 유의하십시오. 이 유형은 {\로 대표되는 모든 필드가 존재하는지 확인하십시오.답례 활자로

행 다형성은 제약될 수 있다.유형{: : , p {\\{{Float{Float},\{empty \}}}}은(는) 유형의 레코드에 x{\ 필드가 없음을 나타낸다.따라서 고전적인 기록 유형을 얻는다.

레코드에 대한 입력 작업

필드 . 을 선택하는 레코드 작업 필드 추가, [ e r {\r\ \은(는) 행 형식 형식을 지정할 수 있다.

메모들

  1. ^ Wand, Mitchell (June 1989). "Type inference for record concatenation and multiple inheritance". Proceedings. Fourth Annual Symposium on Logic in Computer Science. pp. 92–97. doi:10.1109/LICS.1989.39162.
  2. ^ Wand, Mitchell (1991). "Type inference for record concatenation and multiple inheritance". Information and Computation. 93 (Selections from 1989 IEEE Symposium on Logic in Computer Science): 1–15. doi:10.1016/0890-5401(91)90050-C. ISSN 0890-5401.