ALPHANUMERICP — 문자나 숫자인지

ALPHANUMERICP — 문자나 숫자인지

ALPHANUMERICP는 함수예요. 주어진 문자가 알파벳 문자이거나 숫자 문자인지 확인하는 술어(predicate)예요. 문자와 숫자를 하나로 묶어 "식별자에 쓸 수 있는 글자류인가"를 판별할 때 유용해요.

출처: CLHS Function ALPHANUMERICP

본문

시그니처는 이렇게 생겼어요.

alphanumericp character => generalized-boolean
  • character — 문자.
  • generalized-boolean — generalized boolean(진리값).

동작은 이렇습니다. character가 알파벳 문자 또는 숫자 문자면 true를, 아니면 false를 반환해요.

(alphanumericp #\Z) => true
(alphanumericp #\9) => true
(alphanumericp #\Newline) => false
(alphanumericp #\#) => false

#\Z#\9는 각각 알파벳·숫자라 true, #\Newline#\#(기호)은 false가 돼요.

이 술어의 결과는 리드테이블에서 특별 문법이 활성화되어 있는지와 무관해요. 인자가 문자가 아니면 type-error 타입 오류를 신호해야 하죠.

알아두면 좋은 성질들이 있어요.

  • 알파벳 문자열자(alphanumeric characters)는 graphic-char-p가 정의하는 그래픽 문자에 속해요. 즉 알파벳 문자열자는 그래픽 문자의 부분집합이에요.
  • 표준 문자 A부터 Z, a부터 z, 0부터 9는 모두 알파벳 문자열자예요.

이 술어는 다음 표현과 동치예요.

(alphanumericp x) == (or (alpha-char-p x) (not (null (digit-char-p x))))

alpha-char-p로 알파벳이거나, digit-char-p가 숫자라고 판정하는 경우를 OR로 묶은 셈이죠. 관련 함수로는 alpha-char-p, graphic-char-p, digit-char-p가 있어요.