An Elisp version of Doug Hoyte's defmacro! that allows you to automatically stop parameters being evaluated more than once and variables being captured.
Fixed Typo.
Another typo!
Clarification added.