% Macro DESTRUCTURING-BIND
Macro DESTRUCTURING-BIND
destructuring-bind
lambda-list expression declaration* form*
=> result*
lambda-list - 分割のラムダリスト
expression - フォーム
declaration - 宣言式、評価されません。
form - 暗黙のprogn
result - formの返却値
destructuring-bind
は、
lambda-listで指定された各変数を、
expressionの評価の返却値で得られた木構造に対応する値で束縛し、
それからdestructuring-bind
はformを評価します。
lambda-listでサポートされる分割の定義は3.4.5. 分割のラムダリストをご確認ください。
(defun iota (n) (loop for i from 1 to n collect i)) ;helper
(destructuring-bind ((a &optional (b 'bee)) one two three)
`((alpha) ,@(iota 3))
(list a b three two one)) => (ALPHA BEE 3 2 1)
なし。
もしexpressionの評価した返却値が
分割のパターンにマッチしなかったときは、
型error
のエラーが発生します。
なし。