시스템 클래스 CONS — 콘즈(cons)
시스템 클래스 CONS — 콘즈(cons)
Lisp 하면 가장 먼저 떠오르는 데이터 구조가 바로 cons 셀이죠. 리스트의 기본 구성 요소인 cons가 정확히 무엇인지, 그리고 타입 지정자로는 어떻게 쓰는지 정리한 페이지예요.
클래스 우선순위 목록
cons, list, sequence, t
본문 (Description)
cons 는 car 와 cdr 라고 불리는 두 구성 요소를 가진 복합 객체(compound object)입니다. 이 두 요소는 점 쌍(dotted pair) 을 이루는데, 각 구성 요소는 어떤 객체든 될 수 있어요.
즉 (cons a b) 같은 형태로 두 객체를 묶으면 그것이 곧 cons이고, 리스트는 이런 cons들이 nil로 끝나도록 이어 붙인 구조라 볼 수 있죠.
복합 타입 지정자 (Compound Type Specifier)
- Kind: Specializing
- 구문:
cons [car-typespec [cdr-typespec]]
-
인자:
car-typespec— 타입 지정자 또는 기호*. 기본값은*.cdr-typespec— 타입 지정자 또는 기호*. 기본값은*.
cons 타입 지정자는 specializing 종류로, car가 car-typespec 타입으로, cdr이 cdr-typespec 타입으로 제약된 cons들의 집합을 나타냅니다. car-typespec나 cdr-typespec가 *이면, 마치 t 타입이 지정된 것처럼 동작해요.