Next: , Previous: , Up: Slots   [Contents][Index]


3.3 Slot Access Constructors

For convenience, and for consistency with the record-accessor procedures record-accessor and record-modifier, each of the above method-generating procedures has a corresponding accessor-generator. Each of these procedures creates a generic procedure, adds an appropriate method to it by calling the corresponding method-generating procedure, and returns the generic procedure. Thus, for example, the following are equivalent:

(slot-accessor <foo> 'bar)

(let ((g (make-generic-procedure 1)))
  (add-method g (slot-accessor-method <foo> 'bar))
  g)
Procedure: slot-accessor class name

Returns a generic procedure of one argument that is an accessor for the slot name in class. The argument to the returned procedure must be an instance of class. When the procedure is called, it returns the contents of the slot name in that instance; if the slot is uninitialized, an error of type condition-type:uninitialized-slot is signalled.

Procedure: slot-modifier class name

Returns a generic procedure of two arguments that is a modifier for the slot name in class. The first argument to the returned procedure must be an instance of class, and the second argument may be any object. When the procedure is called, it modifies the slot name in the instance to contain the second argument.

Procedure: slot-initpred class name

Returns a generic procedure of one argument that is an “initialized?” predicate for the slot name in class. The argument to the returned procedure must be an instance of class. When the procedure is called, it returns #t if the slot name in that instance is initialized, otherwise it returns #f.