Macro DESTRUCTURING-BIND

UP


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-bindformを評価します。

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のエラーが発生します。

参考

macrolet, defmacro

備考

なし。


TOP, Github