UnicodeDataata.txt をパースしマッピングの表を得る。それを alist としてデータを保存し、実行時に hashtable に入れるという実装にした。
hashtable の簡易外部表現が欲しくなる。
いろいろ見て回って、Unicode の中の人も大変だなと思う。upcase するときに1文字が2文字になったりする場合があるなんて知らなかった。
つまりプログラミング言語でそれをサポート仕様と思うと char-upcase の引数は文字で、戻り値は文字列なんてことに。
実装のテスト
(char-upcase #\i) ⇒ #\I (char-downcase #\i) ⇒ #\i (char-titlecase #\i) ⇒ #\I (char-foldcase #\i) ⇒ #\i (char-upcase #\Σ) ⇒ #\Σ (char-downcase #\Σ) ⇒ #\σ (char-titlecase #\Σ) ⇒ #\Σ (char-foldcase #\Σ) ⇒ #\σ