by shigemk2

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

Common Lisp リスト構造を分解する

(setq l `(1 (2 3 (4)) 5))
;; リスト構造を分解するのは面倒
(let* ((a (car l))
       (l2 (cadr l))
       (b (car l2))
       (c (cadr l2))
       (d (car (nth 2 l2)))
       (e (nth 2 l)))
  (list a b c d e))	       ; => (1 2 3 4 5)
;; リスト構造の形を与えるだけで楽々分解
(destructuring-bind (a (b c (d)) e)
    l
  (list a b c d e))			; => (1 2 3 4 5)

P192

Emacs Lispテクニックバイブル

Emacs Lispテクニックバイブル