Предикаты на знаках

Сравнение кодов

char= char1 char2 ... ⇒ обобщённое-булево

char/= char1 char2 ... ⇒ обобщённое-булево

char< char1 char2 ... ⇒ обобщённое-булево

char> char1 char2 ... ⇒ обобщённое-булево

char<= char1 char2 ... ⇒ обобщённое-булево

char>= char1 char2 ... ⇒ обобщённое-булево

Предикаты eql и equal вызывают char=, когда оба аргумента — знаки.

Регистро-независимое сравнение латинских букв

char-equal char1 char2 ... ⇒ обобщённое-булево

char-not-equal char1 char2 ... ⇒ обобщённое-булево

char-lessp char1 char2 ... ⇒ обобщённое-булево

char-greaterp char1 char2 ... ⇒ обобщённое-булево

char-not-greaterp char1 char2 ... ⇒ обобщённое-булево

char-not-lessp char1 char2 ... ⇒ обобщённое-булево

Предикат equalp вызывает char-equal, когда оба аргумента — знаки.

Стандарт ANSI Common Lisp треубует от Лисп-систем, чтобы они корректно сопоставляли заглавные и строчные буквы лишь для латиницы. В отношении других языков обязательств нет и разные реализации Крммрн Лисп проступают по-разному.

Например, в CLISP и SBCL вышеуказанные функции корректно работают для русские букв.

В LispWorks же стандартные функции не работают и для регистро-независимое сравнения букв других языкгов существуют следующие аналоги в нестандартном пакете lw:

lw:unicode-char-equal char1 char2обобщённое-булево

lw:unicode-char-not-equal char1 char2обобщённое-булево

lw:unicode-char-lessp char1 char2обобщённое-булево

lw:unicode-char-greaterp char1 char2обобщённое-булево

lw:unicode-char-not-greaterp char1 char2обобщённое-булево

lw:unicode-char-not-lessp char1 char2обобщённое-булево

См. также