Documentation

Batteries.Data.Char.AsciiCasing

Lemmas for ASCII-casing #

These facts apply for ASCII characters only. Recall that isAlpha, isLower, isUpper, toLower, toUpper do not consider characters outside the ASCII character range (code points less than 128).

@[reducible, inline]

Case folding for ASCII characters only.

Alphabetic ASCII characters are mapped to their lowercase form, all other characters are left unchanged. This agrees with the Unicode case folding algorithm for ASCII characters.

#eval caseFoldAsciiOnly 'A' == 'a'
#eval caseFoldAsciiOnly 'a' == 'a'
#eval caseFoldAsciiOnly 'À' == 'À'
#eval caseFoldAsciiOnly 'à' == 'à'
#eval caseFoldAsciiOnly '$' == '$'
Equations
Instances For

    Bool-valued comparison of two Chars for ASCII-case insensitive equality.

    #eval beqCaseInsensitiveAsciiOnly 'a' 'A' -- true
    #eval beqCaseInsensitiveAsciiOnly 'a' 'a' -- true
    #eval beqCaseInsensitiveAsciiOnly '$' '$' -- true
    #eval beqCaseInsensitiveAsciiOnly 'a' 'b' -- false
    #eval beqCaseInsensitiveAsciiOnly 'γ' 'Γ' -- false
    #eval beqCaseInsensitiveAsciiOnly 'ä' 'Ä' -- false
    
    Equations
    Instances For

      ASCII-case insensitive implementation comparison returning an Ordering. Useful for sorting.

      #eval cmpCaseInsensitiveAsciiOnly 'a' 'A' -- eq
      #eval cmpCaseInsensitiveAsciiOnly 'a' 'a' -- eq
      #eval cmpCaseInsensitiveAsciiOnly '$' '$' -- eq
      #eval cmpCaseInsensitiveAsciiOnly 'a' 'b' -- lt
      #eval cmpCaseInsensitiveAsciiOnly 'γ' 'Γ' -- gt
      #eval cmpCaseInsensitiveAsciiOnly 'ä' 'Ä' -- gt
      
      Equations
      Instances For