User Tools


Macro DESTRUCTURING-BIND

Syntax

  • destructuring-bind lambda-list expression declaration* form* result*

Arguments and Values

Description

destructuring-bind binds the variables specified in lambda-list to the corresponding values in the tree structure resulting from the evaluation of expression; then destructuring-bind evaluates forms.

The lambda-list supports destructuring as described in \secref\DestructuringLambdaLists.

Examples

;;; TODO better examples for this, d-bind really deserves more love

(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)

Affected By

None.

Exceptional Situations

If the result of evaluating the expression does not match the destructuring pattern, an error of type error should be signaled.

See Also

Notes

None.

\issue{DECLS-AND-DOC} \issue{DESTRUCTURING-BIND:NEW-MACRO}