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

Re: strings draft

This page is part of the web mail archives of SRFI 50 from before July 7th, 2015. The new archives for SRFI 50 contain all messages, not just those from before July 7th, 2015.



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