文字がアルファベットかどうかを調べる

文字列中の 1文字がアルファベットかどうか知りたいことがたまにある。
たとえば、こう書ける。

(defun char-alphabet-p (ch)
  (if (char-not-greaterp #\a ch #\z) t
    nil))

char-not-greaterp は char<= の大文字/小文字区別なし版で、2つの引数の大小比較だけでなくて、3個以上の引数を取れるってとこがミソかな。
関係ないけど、Wikipedia によると A〜Z, a〜z を「アルファベット」という呼ぶのは日本だけっぽい
とすると、上の関数名はすごく変に感じるけど、まあいいや。

ちなみに数字かどうかは、これで一発。

(defun char-number-p (ch)
  (if (char<= #\0 ch #\9) t
    nil))

たらたら書く必要なし。すばらしい。