by shigemk2

当面は技術的なことしか書かない

sort alist by key

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)))))

asoc.el/asoc.el at master · troyp/asoc.el · GitHub