妙なマクロができた。
(defmacro def-instance-interp (func-name value-pair values &body body) (if (not (listp values)) (setf values (eval values))) `(defun ,func-name (,value-pair) (let (,@(mapcar (lambda (x) (if (listp x) x `(,x (find-value ',x ,value-pair)))) values)) ,@body)))
destructuring-bind を使えばこんなマクロはいらない、、、習作だからよしとする。
On Lisp 一回読んでるのにな、、、実戦ではなかなか使えないぞ。
http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/destructuring.html