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)
(3))
`((alpha) ,@(iota list a b three two one)) => (ALPHA BEE 3 2 1) (
なし。
もしexpressionの評価した返却値が 分割のパターンにマッチしなかったときは、 型error
のエラーが発生します。
なし。