alistをキーでソートする関数は自前では用意されていないので、独自定義する必要がありまして。
(defalias 'asoc-copy 'copy-sequence "Return a shallow copy of ALIST.") (defun asoc-sort-keys (alist comparator) "Return a copy of ALIST sorted by keys. The keys are sorted stably using COMPARATOR. Example: (let ((a '((b . 2) (a . 1) (e . 5) (d . 4) (c . 3)))) (asoc-sort-keys a #'string<)) ;; ((a . 1) (b . 2) (c . 3) (d . 4) (e . 5))" (sort (copy-sequence alist) (lambda (pair1 pair2) (funcall comparator (car pair1) (car pair2)))))