Function Bind

Part of:

package metabang.bind, package metabang.utilities
( bind (&rest bindings) &body < body > )
Bind is a replacement for let*, destructuring-bind and multiple-value-bind. An example is probably the best way to describe its syntax: (bind ((a 2) ((b &rest args &key (c 2) &allow-other-keys) '(:a :c 5 :d 10 :e 54)) ((values d e) (truncate 4.5))) (list a b c d e args)) Simple bindings are as in let*. Destructuring is done if the first item in a binding is a list. Multiple value binding is done if the first item in a binding is a list and the first item in the list is 'values'.