`OR` — 오어 복합 타입 지정자
OR — 오어 복합 타입 지정자
"이 값은 어느 여러 타입 중 하나야"라고 범위를 느슨하게 열어두고 싶을 때가 있어요. 타입들의 합집합(union)을 만드는 복합 타입 지정자가 or예요. CLOS에서 리스트가 (or null cons)로 정의되는 것처럼, 이 지정자는 실제로 아주 흔하게 쓰여요.
본문
복합 타입 지정자의 종류
결합(Combining) — 여러 타입을 합쳐 새로운 타입을 만드는 종류예요.
복합 타입 지정자 문법
or typespec*
복합 타입 지정자 인자
typespec— 어떤 타입 지정자.
설명
or은 나열된 타입 지정자들의 합집합으로 결정되는 타입에 속하는 모든 객체들의 집합을 뜻해요.
예를 들어 커먼 리스프에서 리스트 타입은 정의상 (or null cons)과 같아요. 또 position이 반환하는 값은 (or null (integer 0 *)) 타입이 되는데, 이는 "nil이거나 음이 아닌 정수"라는 뜻이에요.
주의할 점은 다음과 같아요.
*는 인자로 허용되지 않아요.(or)와nil은 동등한 타입이에요. 즉 아무것도 나열하지 않으면 빈 타입이 되죠.or이라는 심볼 자체는 타입 지정자로 유효하지 않아요. 즉(or)의 축약형이 아니에요.
함께 보기
and타입,not타입position함수