Q: làm thế nào để tôi sắp xếp thứ tự các chuỗi với dấu phụ?
Vấn đề
Tôi có một danh sách dài các tên tác giả, một số người có chữ cái có dấu phụ trong tên của họ (ví dụ: "á" hoặc "é"). Tôi muốn sắp xếp danh sách này theo thứ tự abc.
Vấn đề: sort
ing danh sách với string-lessp
không không sắp xếp chúng theo thứ tự abc.
Theo câu trả lời được chấp nhận trong bài đăng này từ một trang web chị em , tiếng Anh bỏ qua các dấu phụ trong việc sắp xếp ngoại trừ phá vỡ mối quan hệ. (Các ngôn ngữ khác làm điều đó khác đi.)
Ví dụ đồ chơi
Đây là một ví dụ đồ chơi. Danh sách các chữ cái mà tôi bắt đầu đã được sắp xếp theo thứ tự abc. Tuy nhiên, khi tôi sort
liệt kê danh sách này
string-lessp
, nó sẽ sắp xếp chúng theo thứ tự tôi đoán là thứ tự điểm unicode thay vì thứ tự chữ cái:
(let ((letters '("a" "à" "á" "â" "b" "c" "e" "é" "ê")))
(sort letters #'string-lessp))
;; => ("a" "b" "c" "e" "à" "á" "â" "é" "ê")
Tôi làm gì?
Làm thế nào tôi có thể sắp xếp thứ tự các chuỗi với dấu phụ trong đó?
Tối thiểu, tôi muốn tôn trọng quy tắc "bỏ qua dấu phụ ngoại trừ phá vỡ quan hệ" được mô tả ở trên. Lý tưởng nhất là tôi muốn có thể sắp xếp theo thứ tự chữ cái theo một ngôn ngữ được xác định tùy ý, nhưng tôi sẽ vui vẻ giải quyết tiếng Anh.