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.
;;; 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)
If the result of evaluating the expression does not match the destructuring pattern, an error of type error should be signaled.