Ответ на Яр - какие ф-ии работы со строками включить в стандартную библиотеку? (комментарий)
http://www.sbcl.org/manual/#Unicode-Support - похоже, что в SBCL строки не содержат в себе локали (хотя они являются массивами букв и в этом твоё пожелание выполненио).
В лиспворксе тоже что-то не видно той архитектуры, к-рую ты хочешь. Есть внешние форматы, а про collation ничего нет
Т.е. ты хочешь сказать, что надо глянуть и в формат SQL, где это прописано. Привожу цитату из доки любимого сервера всех пользователей Linux, т.е.из Ms SQL.
Параметры сортировки уровня сервера...
Параметры сортировки уровня базы данных При создании или изменении базы данных можно задать параметры ее сортировки по умолчанию с помощью предложения COLLATE в инструкции CREATE DATABASE или ALTER DATABASE...
Параметры сортировки уровня столбцов... - это и есть то, что надо.
Параметры сортировки уровня выражений...
SELECT name FROM customer ORDER BY name COLLATE Latin1_General_CS_AI;
В лиспворксе есть external-formats и есть сравнение строк для юникода, но к строке они опять же не прилеплены.
Проблема с ё представляется мне важной. Раз юникод кривой, мы будем от него абстрагироваться.
Если вы знаете иной ЯП, где задача приклейки локали к строкам решена, то дайте знать.
Я сразу могу сказать про такие грабли: «Смесь french с нижегородским» - как сравнивать такую строку и как привести её к верхнему регистру? Очевидно, строка многоязычна и у неё не может быть такого атрибута, как локаль. Если локаль приклеена к букве, то это уже легче.
Пока у меня ничего не вырисовывается, разве только вот такое:
Письменность - система, охватывающая все вопросы представления
строк в компьютере: кодировка строк в виде массивов, сравнение,
приведение регистра, определение языка, изображение на экране.
Как минимум, есть три письменности: юникод, koi-8r, GB_18030
(если я правильно понял смысл последнего).
Литера - абстрактная структура метаданных. Её атрибуты
Письменность
Номер (необязательно)
Абстрактный глиф
Понятное людям описание
Языки, в к-рых может присутствовать
Кодировка - способ превращения литер или строк из литер в
массивы цифр и обратн в рамках одной письменности
Внешний формат - способ преобразования письменностей и/или кодировок.
В этой структуре пока не определен тип данных «строка» и не решён вопрос про «смесь french с нижегородским». Вопрос: правильно или нет?