(defpackage zone (:use :cl) (:export :new-zone :name :get-commodity)) (in-package :zone) (defclass zone () ((name :initarg :name :reader name) (commodities :initarg :commodities :accessor commodities))) (defun new-zone (name commodities) (make-instance 'zone :name name :commodities commodities)) (defmethod get-commodity ((z zone) commodity-name) (find-if (lambda (c) (string= (commodities:name c) commodity-name)) (commodities z)))