(defun lookup (environment type name &key (error-p nil) (default-value nil))
(loop
for (.type .name . data) in environment
when (and (eql .type type) (eql .name name))
return (values data t)
finally
(if error-p
(error "Sorry, No value for ~S of type ~S in environment ~S found."
name type environment)
(values default-value nil))))Source Context