6.25.3 Character Case Mapping

The procedures below provide support for “character case mapping”, i.e., to convert characters or strings to their upper-case or lower-case equivalent. Note that SRFI-13 provides procedures that look similar (see Alphabetic Case Mapping). However, the SRFI-13 procedures are locale-independent. Therefore, they do not take into account specificities of the customs in use in a particular language or region of the world. For instance, while most languages using the Latin alphabet map lower-case letter “i” to upper-case letter “I”, Turkish maps lower-case “i” to “Latin capital letter I with dot above”. The following procedures allow programmers to provide idiomatic character mapping.

Scheme Procedure: char-locale-downcase chr [locale]
C Function: scm_char_locale_upcase (chr, locale)

Return the lowercase character that corresponds to chr according to either locale or the current locale.

Scheme Procedure: char-locale-upcase chr [locale]
C Function: scm_char_locale_downcase (chr, locale)

Return the uppercase character that corresponds to chr according to either locale or the current locale.

Scheme Procedure: char-locale-titlecase chr [locale]
C Function: scm_char_locale_titlecase (chr, locale)

Return the titlecase character that corresponds to chr according to either locale or the current locale.

Scheme Procedure: string-locale-upcase str [locale]
C Function: scm_string_locale_upcase (str, locale)

Return a new string that is the uppercase version of str according to either locale or the current locale.

Scheme Procedure: string-locale-downcase str [locale]
C Function: scm_string_locale_downcase (str, locale)

Return a new string that is the down-case version of str according to either locale or the current locale.

Scheme Procedure: string-locale-titlecase str [locale]
C Function: scm_string_locale_titlecase (str, locale)

Return a new string that is the titlecase version of str according to either locale or the current locale.