リスト構造を分解して変数に代入する


Tag: 制御構造

リストを形(木構造)に着目して要素に分解して、それぞれを変数に束縛できます。

(destructuring-bind ((a b &key k) ((c &rest d)))
    '((1 2 :k 0) ((3 4 5)))
  (list k a b c d))
;=> (0 1 2 3 (4 5))

リストの入れ子構造の解析だけでなく、関数定義defunのラムダリストのようにキーワードパラメタやレストパラメタの解析もできます。