npt-japanese

% Function CHAR-UPCASE, CHAR-DOWNCASE

UP


Function CHAR-UPCASE, CHAR-DOWNCASE

Function CHAR-UPCASE, CHAR-DOWNCASE

構文

char-upcase character => corresponding-character
char-downcase character => corresponding-character

引数と戻り値

character, corresponding-character - 文字

定義

characterが小文字なら、char-upcaseは大文字を返却します。 それ以外はただ引数の文字をそのまま返却します。

characterが大文字なら、char-downcaseは小文字を返却します。 それ以外はただ引数の文字をそのまま返却します。

characterと返却値では、ただ文字コードの属性のみが違っており、 その他のすべての実装定義の属性は保存されます。

例文

(char-upcase #\a) =>  #\A
(char-upcase #\A) =>  #\A
(char-downcase #\a) =>  #\a
(char-downcase #\A) =>  #\a
(char-upcase #\9) =>  #\9
(char-downcase #\9) =>  #\9
(char-upcase #\@) =>  #\@
(char-downcase #\@) =>  #\@

;; 注意:次の例文は、もしCHAR-CODE-LIMITの値が非常に大きい実装の場合は、
;;       おそらく非常に長い時間かかるだろう。
(dotimes (code char-code-limit)
  (let ((char (code-char code)))
    (when char
      (unless (cond ((upper-case-p char) (char= (char-upcase (char-downcase char)) char))
                    ((lower-case-p char) (char= (char-downcase (char-upcase char)) char))
                     (t (and (char= (char-upcase (char-downcase char)) char)
                             (char= (char-downcase (char-upcase char)) char))))
        (return char)))))
=>  NIL

影響

なし。

例外

もしcharacterが文字ではなかったら、型type-errorのエラーが生じます。

参考

upper-case-p, alpha-char-p, 13.1.4.3. 文字のケース, 13.1.10. 処理系実装のスクリプトの説明

備考

もしcorresponding-charactercharacterと違う場合は、 corresponding-charactercharacter両方に ケース(大文字と小文字のこと)があるということになります。

char-equalは文字の比較の際にケースを無視するため、 corresponding-charactercharacterchar-equalでの 比較においては常に等しいです。


TOP, Github