by shigemk2

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

ソート

;; 数値のソート
(setq l '(3 5 2 4 7 8))			; => (3 5 2 4 7 8)
;; 昇順(比較関数にはクオートをつけること)
(setq l (sort l '<))			; => (2 3 4 5 7 8)
;; 降順
(setq l (sort l '>))			; => (8 7 5 4 3 2)
;; こちらは破壊的にやってる
l					; => (8 7 5 4 3 2)

;; 文字列のソート
(setq l '("vim" "emacs" "nano" "gedit")) ; => ("vim" "emacs" "nano" "gedit")
;; 昇順
(setq l (sort l 'string<))		; => ("emacs" "gedit" "nano" "vim")
;; 降順(string>は存在しないので結果をreverseする)
(setq l (reverse(sort l 'string<)))		; => ("vim" "nano" "gedit" "emacs")
;; こちらも破壊的
l					; => ("vim" "nano" "gedit" "emacs")
;; 非破壊的なソート
(setq l '(0 4 2 1))
(sort (copy-sequence l) '<)		; => (0 1 2 4)
l					; => (0 4 2 1)

P150

Emacs Lispテクニックバイブル

Emacs Lispテクニックバイブル