Alexander Burger wrote:
> Hello Cle,
> In terms of "beauty", there are not many options, though. I would
> (put '+aClass 'ClassVar "new value")
> and perhaps write a utility function.
thanks for the hint. Is there any special reason, why there is no such
utility function in picoLisp for that task? I mean defining and querying
helpers exists ... :-/
> Yes, it depends on 'This' being bound.
Ah ok, then I understood, I think :-)
> BTW: There is no such thing as "the class" of an instance. There is
> always a list of classes. (car (type This)) might not be the right
> class, the "main" class is usually (last (type This)) while the
> other classes in the list are usually "prefix" classes.
I now, therefore I had hoped for a class variable setter, that would
allow to update a class variable in the first class where it was found.
Right so as the querying function (var:).
Do you have any proposal, what such a helper/utility function should be
called to fit into (var:) (var) functions that already exists?
>> The only way I found working reliable (use class regardless if in
>> a method send to a class or an instance) seem to be
> Note that in picoLisp there is no formal difference between objects
> and classes. Objects may have local method definitions, and classes
> have instance variables. So it just depends on the context, and on
> what the programmer has in mind, if a symbol is regarded as an object
> or as a class.
Yep, like in Ruby or Smalltalk for instance ;-) I really need a counter,
that is member of the class, as instance creation will increment said
>> (with '`*Class ...)
>> Is this the correct way, or did I overlook something?
> I'm not sure I completely understood what you want to achieve. This
> is correct, if you want to capture the current class. Again, you
> could also simply use 'put' here.
Hmmm ... if I do not write an utility function, I will switch to 'put'
here. And yes, in this case I want to capture the current class.
However, if I fiddle out, what such an utility function should look
like, I will probably use that function then, instead of capturing the
current class ...
> Cheers, - Alex