[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

the "Unicode Background" section



The Unicode Background section of the new draft has

  > It is thus appropriate to define Scheme characters as Unicode scalar
  > values, which includes all code points except those designated as
  > surrogates.

That seems wrong-headed to me.   Characters should simply
be codepoints, instead.

If CHARs are codepoints, more basic Unicode algorithms translate
into Scheme cleanly.   

If CHARs are codepoints, they have simple algebraic properties
in relation to integers.

What is gained by forcing surrogates to be unrepresentable as CHAR?

What kind of code will I wind up with if I want to iterate over
a large range of CHAR values?  Must R6RS also add new arithmetic
operators that work on CHAR values or their strangely limited integer
values?  Please don't tell me you want to "protect" me from including
surrogates in my iteration.

It's not as if by excluding surrogates we arrive at a CHAR definition
that is significantly more "linguistic" than if we don't.

-t