ものがたり(旧)

atsushieno.hatenablog.com に続く

ハングルもUCAと違う

UCAでは語頭子音(choseong)と母音(jungseong)*1の並びに沿って音節文字が配置されるので、計算式を用いて最適化することができるのだけど、Windowsでは語尾子音(jongseong)も含めて全部混ざっていて、それぞれ一意の文字には別々の重みを設定するので、計算式を立てることが出来ない。つまり、UCAに比べて、ランタイムをメモリ上にロードするときに余計なメモリを食う設計になっている。

collationまわりのコードをcommitしても、ほとんど誰にも理解不能な代物になっていて、得も言われぬ徒労感がある。これでも、あと1200文字ほどsortkeyを埋めれば、ダミーでもGetSortKey()が実装できるようになるのだけど。Gonzaloは、僕のMLへのpostを見て、僕は法律家が法律を語るように文字列比較を語っている、と言っていた。今日はハングルまわりのコードをcommitしたら、もはや何を言っているのか分からなくて翻訳も出来ねえ、とのたまわっていた。

*1:母音は関係ない。ハングルは母音単体で字の並び順の基準になり得ない