summaryrefslogtreecommitdiffstats
path: root/src/zone.lisp
blob: ee2fad55a4442d6d42d16c65d3ec9aa4202f6a41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(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)))