配列をソートする - lisp-cookbook-ja/common-lisp GitHub Wiki

配列 ベクタ

sort はシーケンス全般に使えますので、ベクタ(一次元のアレイ)にも利用できます。

sort は破壊的に変更しますので元のベクタを破壊したくない場合は、コピーしたものを渡します。 また、値を生成するための変更になりますので破壊されたベクタが結果の内容と一致している必要はありません。そのため場合によっては再度変数に結果を代入する必要があります。

(let ((v (vector 1 3 2 4)))
  (setq v (sort v #'<))
  v)
;=> #(1 2 3 4)

(let ((v (vector "はちべえ" "やしち" "かくさん" "すけさん")))
  (setq v (sort v #'string<))
  v)
;=> #("かくさん" "すけさん" "はちべえ" "やしち")