(require 'let-alist) (setq alist '((foo . "FOO") (bar . "BAR") ("baz" . "not used"))) ;;; assq/cdrを使っていたのが (let ((.foo (cdr (assq 'foo alist))) (.bar (cdr (assq 'bar alist)))) (cons .foo .bar)) ; => ("FOO" . "BAR") ;;; あっさり! .つきのシンボルでアクセスできる!! (let-alist alist (cons .foo .bar)) ; => ("FOO" . "BAR") ;;; 文字列で使えないのが残念でならない。亜種が欲しいところ。 (let-alist alist .baz) ; => nil ;;; 残念ながら書き込みはできない (let-alist alist (setf .foo 100) alist) ; => ((foo . "FOO") (bar . "BAR") ("baz" . "not used"))