대수적 자료형
프로그래밍 언어, 특히 함수형 프로그래밍과 타입 이론에서의 대수적 자료형(영어: 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]와 같은 방법으로 사용된다.
대수적 자료형을 지원하는 프로그래밍 언어
편집같이 보기
편집각주
편집- ↑ Calculus of Inductive Constructions Archived 2020년 6월 10일 - 웨이백 머신, and basic standard libraries :
Datatypes
Archived 2020년 6월 10일 - 웨이백 머신 andLogic
Archived 2020년 6월 10일 - 웨이백 머신. - ↑ “CppCon 2016: Ben Deane "Using Types Effectively"” – www.youtube.com 경유.
- ↑ “Enum Instance”. 《Haxe - The Cross-platform Toolkit》.
- ↑ “JEP 360: Sealed Classes (Preview)”. 《OpenJDK》.
- ↑ “Reason · Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.”. 《reasonml.github.io》.
- ↑ “Sealed Classes - Kotlin Programming Language”. 《Kotlin》.
이 문서에는 GFDL 라이선스로 배포된 자유 온라인 컴퓨팅 사전(FOLDOC)의 내용을 기초로 작성된 내용이 포함되어 있습니다.
이 글은 프로그래밍 언어에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |