This is the mail archive of the guile@cygnus.com mailing list for the guile project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Klaus Schilling <Klaus.Schilling@home.ivm.de> writes:
> Mikael Djurfeldt writes:
> >
> >
> > Note that I finally followed Maciej and others' advice regarding the
> > order of arguments. It is most intuitive to have the expansion:
> >
> > (set! (PWS A1 ...) V) --> ((SETTER PWS) A1 ... V)
> >
> > and it has the advantage of working with all setters except the
> > current array-set! which I think should be modified.
> >
> Is it possible to make it work with the slot-set! in BOS (Bryan O. Sullivan's
> Scheme Object System for R4RS), or other third-party object systems?
Well, if you have a `slot-set!', I guess you have a `slot-ref' as
well.
Then you can write:
(if (not (defined? 'old-slot-ref))
(define old-slot-ref slot-ref))
(define slot-ref (make-procedure-with-setter old-slot-ref slot-ref))
Now you can do:
(set! (slot-ref obj slot) val)
which, I suppose, is what you wanted to do.