Thomas F. Burdick wrote:
you need a suite of tree- or net-searching utilities to really enable
the declarative style that makes Cells such a win.

This is what I don't actually understand. I'm writing a simple aircraft simulator and I have a bunch of defmodel definitions for various systems, a bunch of input and output cells and I expect output cells to provide new values whenever their dependencies are changed. Currently, this all works beautifully for me and I haven't used any explicit network modeling/searching. I'm wondering if I am missing something.

As an example, I have something like the following:

=================================================================

(defmodel flight-parameters ()
  ((speed :initarg :speed
          :cell t :initform (c-in 0) :accessor aircraft-speed)
   (altitude :initarg :altitude
             :cell t :initform (c-in 0) :accessor aircraft-altitude)
   (heading :initarg :heading
            :cell t :initform (c-in 0) :accessor aircraft-heading)))

=================================================================

(defclass aircraft ()
   (flight-parameters :initarg :flight-parameters
                      :accessor aircraft-flight-parameters)
   (lights :initarg :lights
           :accessor aircraft-lights
           :documentation "Light system.")
   (light-switches :initarg :light-switches
                   :accessor aircraft-light-switches)
   (flaps :initarg :flaps
          :accessor aircraft-flaps)
   (gear :initarg :gear
         :accessor aircraft-gear)))


=================================================================

(defmodel b777-flaps (flaps)
  ((lever-position :cell t
                   :initarg :lever-position
                   :accessor flaps-lever-position)
   (real-position :cell t
                  :initarg :real-position
                  :accessor flaps-real-position)
   (transit-start-time :cell nil
                       :initarg :transit-start-time
                       :accessor flaps-transit-start-time
                       :initform 0.0)
   (transit-start-position :cell nil
                           :initarg :transit-start-position
                           :accessor flaps-transit-start-position
                           :initform 0)
  (:default-initargs
      :lever-position (c-in 0)
    :real-position (c? (flaps-real-position-fn self))))

==================================================================
_______________________________________________
cells-devel site list
cells-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/cells-devel

Reply via email to