# #13: Simple destructuring-bind

Tagged as challenge

Written on 2018-01-30

In Common Lisp, there's a macro called destructuring-bind which allows you to "take apart" a list and bind the parts to variables. It's a primitive form of pattern matching for lists.

Implement a basic version that allows the following to work:

(define lst '(1 2 3))
(define cns '(1 . 2))

(destructuring-bind (a b c) lst
(+ a b c))                    ; ==> 6

(destructuring-bind (a . b) cns
(+ a b))                      ; ==> 3

(destructuring-bind (a . b) lst
(map (lambda (x) (+ a x)) b)) ; ==> (3 4)