summaryrefslogtreecommitdiffstats
path: root/src/zone.lisp
blob: 8e733b199b5a24d4f2c29aa5b39a5fa892a2e829 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(defpackage zone
  (:use :cl)
  (:export :new-zone
		   :name
		   :get-commodity
		   :get-commodities))

(in-package :zone)

(defclass zone ()
  ((name :initarg :name
		 :reader name)
   (commodities :initarg :commodities
				:accessor commodities
				:reader get-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)))