Hi,

I'm currently using cells and it works very well,
except one thing seems a little unhandy:

When defining a model it's possible to use (c-in ..)
as an initform to define a slot as a cell, but when
instantiating a class you have to supply (c-in ...)
instead the normal value, eg.

(defmodel x ()
  ((y :accessor y
      :initarg :y
      :initform (c-in nil))
   ...))

(let ((test (make-instance 'x :y (c-in 1))))
  (setf (y test) 2))

works, but instead sth like

(let ((test (make-instance 'x :y 1)))
  (setf (y test) 2))

would be nice.

I tried it with

(defmethod initialize-instance ((self x) &rest rest)
  (loop for slot in rest by #'cddr
     do (let ((value (getf rest slot))
              (name (intern (symbol-name slot))))
          (setf (slot-value self name)
                (c-in value)))))

but I just get:

The slot CELLS::.CELLS is unbound in the object #<X {10032D5FC1}>.
   [Condition of type UNBOUND-SLOT]

Is there any way to get this behavior?

kind regards,
  Bastian

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

Reply via email to