Multiple Substitutions
The function (sublis alist form) makes multiple substitutions simultaneously:
>(sublis '((rose peach) (smell taste))
'(a rose by any other name
would smell as sweet))
(A PEACH BY ANY OTHER NAME WOULD TASTE AS SWEET)
; substitute in z with bindings in alist
(defun sublis (alist z)
(let (pair)
(if (consp z)
(cons (sublis alist (first z))
(sublis alist (rest z)))
(if (setq pair (assoc z alist))
(second pair)
z)) ))