[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Duel Name Spaces Within Modules

Dylan appears to be a great advance in the design of object oriented
dynamic languages.  With that said, I would like to ask about some
design details.

In an other forum, I argued against the idea of having two name spaces
within a module.  I am refering, of course, to the fact that FOO is
a different variable from #'FOO, which is (SETTER FOO) in the old
syntax.  The reply in the Dylan FAQ stated that:

	If we did this, the action of exporting a getter function
	would automatically export the setter as well.  We believe
	that it's important to allow the getter and setter to be
	exported and imported independently.  The design of setter
	variables allows this.

It seems quite simple to export a getter without its setter by
encapsilating the getter in an object that intercepts only setter
operations, and delegates all other operations.  In fact, it seems so
simple, I feel I must be missing something.  Why is it difficult to
have a value based implementation of SETTER notation be able to
selectively export a getter without a setter?


P. S.  I agree with Jim Meehan suggestion on multiple values in that
calling a continuation should be like calling an ordinary procedure.