transcendental-lisp/lisp/fruit-counter.lisp

28 lines
899 B
Common Lisp
Raw Normal View History

2017-03-01 16:45:48 -05:00
(load "dlambda.lisp")
(defun fruit-counter (initial-count)
(let ((apple-count initial-count)
(banana-count initial-count)
(coconut-count initial-count))
(eval
(dlambda
(:inc-apple () (setf apple-count (+ apple-count 1)))
(:dec-apple () (setf apple-count (- apple-count 1)))
(:get-apple () apple-count)
(:set-apple (value) (setf apple-count value))
(:inc-banana () (setf banana-count (+ banana-count 1)))
(:dec-banana () (setf banana-count (- banana-count 1)))
(:get-banana () banana-count)
(:set-banana (value) (setf banana-count (- banana-count 1)))
(:inc-coconut () (setf coconut-count (+ coconut-count 1)))
(:dec-coconut () (setf coconut-count (- coconut-count 1)))
(:get-coconut () coconut-count)
(:set-coconut (value) (setf coconut-count value))
)
)
)
)