Q:分音記号で文字列をアルファベット順に並べ替えるにはどうすればよいですか?
問題
私は著者名の長いリストを持っています。その中には、名前に発音区別符号が付いた文字が含まれているものもあります(例: "á"または "é")。このリストをアルファベット順に並べ替えたい。
問題:sort
リストにを使用string-lessp
しても、アルファベット順に並べ替えられません。
姉妹サイトからのこの投稿で受け入れられた回答によると 、英語は、関係を断つことを除いて、分別を区別することを無視しています。(他の言語ではそれが異なります。)
おもちゃの例
これがおもちゃの例です。私が始める文字のリストは、すでにアルファベット順になっています。I場合はsort
、このリストを使用して
string-lessp
、しかし、それは私が推測するものでそれらをソートではなく、アルファベット順よりもユニコードポイントの順序であります:
(let ((letters '("a" "à" "á" "â" "b" "c" "e" "é" "ê")))
(sort letters #'string-lessp))
;; => ("a" "b" "c" "e" "à" "á" "â" "é" "ê")
私は何をしますか?
分音記号を含む文字列をアルファベット順に並べ替えるにはどうすればよいですか?
少なくとも、上記の「引き分けを除いて発音区別符号を無視する」ルールを尊重したいと思います。理想的には、任意に定義された言語に従ってアルファベット順にできるようにしたいのですが、私は英語で問題なく解決します。