Slot Access Procedures - SOS 1.9
Description: SOS 1.9

Previous: Slot Access Constructors, Up: Slots

### 3.4 Slot Access Procedures

Finally, there is another set of three procedures, which access the contents of a slot directly, given an instance and a slot name. These procedures are very slow by comparison with the above.

However, note the following. You can use these procedures in the body of a `define-method` special form in an efficient way. If the `define-method` specifies the correct number of arguments, the body of the form contains a call to one of these procedures and nothing else, and the specified slot name is quoted, the form is rewritten during macro-expansion time as a call to the corresponding method-generating procedure. For example, the following are equivalent:

         (define-method p ((v <foo>))
           (slot-value v 'bar))

         (add-method p
                     (slot-accessor-method <foo> 'bar))

— Procedure: slot-value instance name

> Returns the contents of the slot name in instance; if the slot is uninitialized, an error of type `condition-type:uninitialized-slot` is signalled.

— Procedure: set-slot-value! instance name object

> Modifies the slot name in instance to contain object.

— Procedure: slot-initialized? instance name

> Returns `#t` if the slot name in instance is initialized, otherwise returns `#f`.