- let-alist 1.0.5
- Easily let-bind values of an assoc-list by their names
概要
初めて本家ELPAにあるパッケージを紹介します。
let-alist マクロは、 連想リスト (alist) の
アクセスを劇的に簡単にします。
読み取りのみで、文字列には対応していません。
こういうマクロがあると本当に助かりますね。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてlet-alistを使う方は
以下のコマンドを実行します。
M-x package-install let-alist
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name let-alist
使用例 141221045657.let-alist.el(以下のコードと同一)
(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"))
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。