대수적 자료형

프로그래밍 언어, 특히 함수형 프로그래밍타입 이론에서의 대수적 자료형(영어: Algebraic data type)은 다른 타입의 결합으로 만들어지는 합성 타입(영어: Composite type)을 가리킨다. 대수적 자료형의 두 가지 대표적인 예로써는 공용체(영어: Union) 등으로 불리는 합 타입(영어: Sum type), 레코드(영어: Record), 튜플(영어: Tuple) 등으로 불리는 곱 타입(영어: Product type)이 있다.

대수적 자료형은 다른 자료형의 대체로 다른 자료형을 생성자로 감싸고 있다. 어떤 값도 대수적 자료형의 생성자의 인자가 될 수 있다. 반면에 다른 자료형은 생성자를 실행할 수 없으며 패턴 매칭(영어: Pattern matching) 과정을 통해 생성자를 얻을 수 있다.

가장 일반적인 대수적 자료형은 두개의 생성자를 가진 목록형(list)이다. 목록형은 비어있는 목록을 위해 Nil 또는 []를 지원한다. 예를 들어 LISP에서는 Cons(생성자의 준말)나 ::, :등을 이용하여 짧은 목록을 결합하여 새로운 목록을 만들 수 있게 한다. ((Cons 1 '(2 3 4)) 또는 1:[2,3,4]와 같은 방법으로 사용된다.

대수적 자료형을 지원하는 프로그래밍 언어편집

같이 보기편집

각주편집

  이 문서에는 GFDL 라이선스로 배포된 자유 온라인 컴퓨팅 사전(FOLDOC)의 내용을 기초로 작성된 내용이 포함되어 있습니다.