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] |
Ken Anderson <kanderso@bbn.com> writes: > Your proposal reminds me of funcallable-instances, fin's, of PCL. These > were functions with slots. Fin's were the building blocks that generic > functions were built on top of. The exist in Goops, and are called "entities". All instances of classes which have a subclass of <entity-class> as metaclass behave as procedures. You set the procedure with `set-object-procedure!'. I see two problems with using them as a representation of the <getter-with-setter> (or <procedure-with-setter>): 1. Since Goops is not a part of guile-core but a separate package, and since set! is supposed to belong to guile-core, we can't rely too heavily on object system mechanisms in guile-core. For this reason, although it would be nice, we can't let our getter/setter pair be a subclass of <generic>. However, there is support for basic entities in guile-core, but since there is probably no big advantage in using that representation instead of the currently suggested closures with setter slot. 2. It is essential that there doesn't exist a way to mutate the setter of a getter. For this we have to include support for read-only slots. This is perhaps possible to add to Goops, though. So, yes, to use an entity as the representation for a <procedure-with-setter> may be an alternative. /mdj