P: como alfabeto as strings com diacríticos?
Problema
Eu tenho uma longa lista de nomes de autores, alguns dos quais têm letras com diacríticos em seus nomes (por exemplo, "á" ou "é"). Eu quero classificar esta lista em ordem alfabética.
O problema: sort
ing a lista com string-lessp
que não classificá-los em ordem alfabética.
De acordo com a resposta aceita neste post de um site irmão , o inglês ignora os diacríticos na classificação, exceto para romper os laços. (Outros idiomas fazem isso de maneira diferente.)
Exemplo de brinquedo
Aqui está um exemplo de brinquedo. A lista de letras que eu começo já está ordenada alfabeticamente. Quando eu sort
incluo esta lista
string-lessp
, no entanto, ela as classifica no que eu presumo que seja ordem de ponto unicode em vez de ordem alfabética:
(let ((letters '("a" "à" "á" "â" "b" "c" "e" "é" "ê")))
(sort letters #'string-lessp))
;; => ("a" "b" "c" "e" "à" "á" "â" "é" "ê")
O que eu faço?
Como posso alfabetizar strings com sinais diacríticos?
No mínimo, gostaria de respeitar a regra "ignorar diacríticos, exceto para romper os laços" descrita acima. Idealmente, eu gostaria de poder alfabetizar de acordo com um idioma definido arbitrariamente, mas ficarei feliz em aceitar o inglês.