文字列中の 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))
たらたら書く必要なし。すばらしい。
0 コメント :
コメントを投稿