(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