2 ms·
I am having a hard time seeing how having the option of distinct codepoints would break anything. Consider, İ/i where it is _possible_ to do lossless case conv
by nanis 5y ago
I am having a hard time seeing how having the option of distinct codepoints would break anything.
Consider, İ/i where it is _possible_ to do lossless case conversion:
> lc( 'İ' ) becomes i followed by COMBINING DOT ABOVE which means uc(lc 'İ') becomes LATIN CAPITAL LETTER I WITH DOT ABOVE as a by product of the fact that perl6 deals in graphemes[1]
say 'İ' eq 'İ'.lc.uc.lc.uc;
True
If an extra codepoints existed for Turkish dotted I, such contortions would not be necessary and this would have had no implications for existing working code at the time (nothing says those codepoints must be used, they just give smart software options).
Now, there is nothing one can do with I/ı that will make 'ı' eq 'ı'.uc.lc.uc.lc true without extra information. If codepoints existed, then such special casing and carrying around extra information would not have been necessary.
Also note:
# The letter Ö is not considered to be a variant of the letter O,
# and is a separate letter in the Swedish alphabet. The former
# character is, however, the accepted alternative in contexts where
# Ö cannot be used. Earlier practice substituted OE, which is no
# longer recommended but will still be encountered.
#
U+00F6 # LATIN SMALL LETTER O WITH DIAERESIS
It should not have been too hard to say "The letter İ is not considered to be a variant of the letter I" and vice versa for the lower case versions.
[1]: https://www.nu42.com/2017/02/for-your-eyes-only.html https://www.nu42.com/2017/02/for-your-eyes-only.html