시스템 클래스 INTEGER — 정수

시스템 클래스 INTEGER — 정수

정수는 프로그래밍에서 가장 익숙한 수 타입이죠. Common Lisp의 INTEGER 타입, 특히 정수 크기 제한이 없다는 점과 타입 지정자로의 용법을 정리한 페이지예요.

출처: CLHS — System Class INTEGER

클래스 우선순위 목록

integer, rational, real, number, t

본문 (Description)

정수(integer)수학적 정수입니다. 여기서 핵심은 정수의 크기에 제한이 없다는 거예요. 매우 큰 정수도 표현할 수 있습니다.

integer 타입은 fixnumbignum 두 타입이 완전하게 분할(exhaustive partition) 합니다. 즉 모든 정수는 fixnum이거나 bignum이며, 그 사이에 다른 것이 없어요. (fixnum은 고정 크기로 빠르게 처리되는 정수, bignum은 크기 제한 없이 큰 정수를 처리하는 정수라고 이해하면 돼요.)

복합 타입 지정자 (Compound Type Specifier)

  • Kind: Abbreviating
  • 구문:
integer [lower-limit [upper-limit]]
  • 인자:

    • lower-limit, upper-limitinteger 타입에 대한 구간 지정자(interval designator). 각각의 기본값은 기호 *.

integer 타입 지정자는 abbreviating 종류로, lower-limitupper-limit이 기술하는 구간 위의 정수들을 나타냅니다.

Notes

integer 타입 지정자는 자주 쓰이는 몇 가지 축약 이름과 연결돼 있어요.

  • (integer lower upper) — 여기서 lowerupper가 각각 most-negative-fixnummost-positive-fixnum이면, 이 타입을 fixnum 이라고도 불러요.
  • (integer 0 1) — 이 타입을 bit 이라고 불러요.
  • (integer 0 *) — 이 타입을 unsigned-byte 라고 불러요.

이렇게 구간 지정자를 통한 축약 표현이 실용적으로 자주 쓰인다는 점을 알면 도움이 돼요.

더 알아보기 (Learn more)