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

Re: strings draft



At 22 Jan 2004 19:12:28 -0800, Thomas Bushnell, BSG wrote:
> 
> So my proposal is: drop the char-ci* functions entirely.  Add locale
> arguments to the string-ci* functions.  And then say:
>
> "Two scheme identifiers are the same if they match with the string-ci*
> function in the locale returned by (scheme-standard-locale).  It is
> guaranteed that in this locale, a..z are not distinguished by
> string-ci* from A..Z, and that all other characters required to exist
> by the standard are distinguished from these and each other."

Scheme identifiers are case-sensitive, it's just the reader that by
default performs a case-mapping.  From R5RS:

     (eq? 'bitBlt (string->symbol "bitBlt"))
               ==>  #f

So to be consistent with this we should change the paragraph under
lexical conventions which reads:

  Upper and lower case forms of a letter are never distinguished except
  within character and string constants.  For example, `Foo' is the same
  identifier as `FOO', and #x1AB is the same number as #X1ab.

to something like

  Upper and lower case forms of a letter are never distinguished except
  within character and string constants.  For example, `Foo' is the same
  identifier as `FOO', and #x1AB is the same number as #X1ab.  The case
  mapping or comparison procedures used for this use
  (scheme-standard-locale) as the locale argument.

-- 
Alex