Function STRING=, STRING/=, STRING<, STRING>, STRING<=, STRING>=, STRING-EQUAL, STRING-NOT-EQUAL, STRING-LESSP, STRING-GREATERP, STRING-NOT-GREATERP, STRING-NOT-LESSP
string= string1 string2 &key start1 end1 start2 end2 => generalized-boolean
string/= string1 string2 &key start1 end1 start2 end2 => mismatch-index
string< string1 string2 &key start1 end1 start2 end2 => mismatch-index
string> string1 string2 &key start1 end1 start2 end2 => mismatch-index
string<= string1 string2 &key start1 end1 start2 end2 => mismatch-index
string>= string1 string2 &key start1 end1 start2 end2 => mismatch-index
string-equal string1 string2 &key start1 end1 start2 end2 => generalized-boolean
string-not-equal string1 string2 &key start1 end1 start2 end2 => mismatch-index
string-lessp string1 string2 &key start1 end1 start2 end2 => mismatch-index
string-greaterp string1 string2 &key start1 end1 start2 end2 => mismatch-index
string-not-greaterp string1 string2 &key start1 end1 start2 end2 => mismatch-index
string-not-lessp string1 string2 &key start1 end1 start2 end2 => mismatch-index
string1 - string-designator
string2 - string-designator
start1, end1 - 文字列の境界インデックス指定子。 startとendの標準値はそれぞれ0とnil。
start2, end2 - 文字列の境界インデックス指定子。 startとendの標準値はそれぞれ0とnil。
generalized-boolean - generalized-boolean mismatch-index - string1の境界内インデックスか、nil
これらの関数はstring1とstring2の辞書式比較を行います。 string=とstring-equalは等式関数と呼ばれます。 その他の関数は不等式関数です。 これらの関数が行う比較演算は、 start1とend1で囲まれたstring1の部分文字列と、 start2とend2で囲まれたstring2の部分文字列に限定されます。
文字列aと文字列bが等しいとは、 どちらも同じ個数の文字を保有しており、 各文字がchar=かchar-equalの適用において等しい場合です。
文字列aが文字列bより小さいとは、 両者の文字が異なる最初の位置で、 aの文字がchar<またはchar-lesspに従って bの対応する文字より小さい場合、 あるいは文字列aが文字列bのプレフィックス (文字の長さが短く、aのすべての文字に一致する)の場合です。
等式関数は、文字列が等しい場合は generalized-booleanにtrueを返却し、 それ以外はfalseを返却します。
不等式関数は、文字列が等しくない場合は mismatch-indexにtrueを返却し、 それ以外はfalseを返却します。
もしmismatch-indexがtrueの場合は、 string1の開始位置をオフセット値として、 2つの部分文字列が異なっている最初の文字の位置を整数で返却します。
比較は次のように行われます。
string=
string=は、部分文字列の長さが同じであり、 対応する位置に同じ文字が含まれているときtrueを返却します。 それ以外はfalseです。
string-equal
string-equalは、string=と似ていますが、 大文字小文字の違いを無視するところが異なっています。 2つの文字はchar-equalがtrueであれば同一とみなされます。
string<
string<は、部分文字列1が部分文字列2よりも小さいときはtrueを、 それ以外はfalseを返却します。
string>
string>は、部分文字列1が部分文字列2よりも大きいときはtrueを、 それ以外はfalseを返却します。
string-lessp, string-greaterp
string-lessp, string-greaterpは、 それぞれstring<, string>と似ていますが、 大文字小文字を無視するところが異なっています。
string<=
string<=は、部分文字列1が部分文字列2を比べて 等しいかあるいは小さいときはtrueを、 それ以外はfalseを返却します。
string>=
string>=は、部分文字列1が部分文字列2を比べて 等しいかあるいは大きいときはtrueを、 それ以外はfalseを返却します。
string-not-greaterp, string-not-lessp
string-not-greaterpとstring-not-lesspは、 それぞれstring<=とstring>=に似ていますが、 大文字小文字を無視するところが異なっています。 文字を比較するときに、char<の代わりに char-lesspが使用されたかのように行われます。
(string= "foo" "foo") => true
(string= "foo" "Foo") => false
(string= "foo" "bar") => false
(string= "together" "frog" :start1 1 :end1 3 :start2 2) => true
(string-equal "foo" "Foo") => true
(string= "abcd" "01234abcd9012" :start2 5 :end2 9) => true
(string< "aaaa" "aaab") => 3
(string>= "aaaaa" "aaaa") => 4
(string-not-greaterp "Abcde" "abcdE") => 5
(string-lessp "012AAAA789" "01aaab6" :start1 3 :end1 7
:start2 2 :end2 6) => 6
(string-not-equal "AAAA" "aaaA") => falseなし。
なし。
なし。
equalは、2つの文字列を比較するときstring=を呼び出します。