13.1.6 Ordering of Characters
The total ordering on characters is guaranteed to have the following properties:
- * If two characters have the same implementation-defined attributes, then their ordering by char< is consistent with the numerical ordering by the predicate < on their code attributes.
- * If two characters differ in any attribute, then they are not char=.
- * The total ordering is not necessarily the same as the total ordering on the integers produced by applying char-int to the characters.
- * While alphabetic standard characters of a given case must obey a partial ordering, they need not be contiguous; it is permissible for uppercase and lowercase characters to be interleaved. Thus (char<= #\a x #\z) is not a valid way of determining whether or not x is a lowercase character.
Of the standard characters, those which are alphanumeric obey the following partial ordering:
either 9<A or Z<0
either 9<a or z<0
This implies that, for standard characters, alphabetic ordering holds within each case (uppercase and lowercase), and that the numeric characters as a group are not interleaved with alphabetic characters. However, the ordering or possible interleaving of uppercase characters and lowercase characters is implementation-defined.
The following X3J13 cleanup issue, not part of the specification, applies to this section:
Copyright 1996-2005, LispWorks Ltd. All rights reserved.