The 'string-not-lessp' [string-not-less-than] predicate function takes two string arguments. A non-NIL value is returned if 'string1' is greater than or equal to 'string2' in ASCII ordering, otherwise NIL is returned. The non-NIL value returned is the integer index of the first character of 'string1' which is char-not-lessp [char-not-less-than] the corresponding character of 'string2'. This test is not case sensitive, the character '#\a' is considered to be the same as '#\A'.
The keyword arguments allow for accessing substrings within 'string1' and 'string2'. The keyword arguments each require a keyword ':start1', ':end1', ':start2' or ':end2' and a single integer expression as a pair with the keyword first and the integer second. The pairs may be in any order. The ':startN' keywords specify the starting offset of the substring. A value of 0 starts the string at the beginning [no offset]. The ':endN' keywords specify the ending offset of the substring. A value of 3 ends the string after the 3rd character [an offset of 3 characters].
(string-not-lessp "a" "b") ; returns NIL (string-not-lessp "a" "a") ; returns 1 (string-not-lessp "a" "A") ; returns 1 (string-not-lessp "A" "a") ; returns 1 (string-not-lessp "abc" "abc ") ; returns NIL (string-not-lessp "1234qr" "123456") ; returns 4 (string-not-lessp "J Smith" "K Jones" :start1 1 :start2 1) ; strip off the first chars ; returns 2
See the
string-not-lessp
predicate function in the