(defun (setf lookup) (value environment type name &key (error-p nil)) (loop for env-piece in environment when (and (eql (first env-piece) type) (eql (second env-piece) name)) do (setf (cddr env-piece) value) and return value finally (when error-p (error "Sorry, No value for ~S of type ~S in environment ~S found." name type environment))))Source Context