Is Dwemthy's Array possible in smalltalk?
Hans-Martin Mosner
hmm at heeg.de
Fri May 13 19:46:12 UTC 2005
Darren Hobbs wrote:
> There's a very interesting article here about metaprogramming in Ruby:
> http://whytheluckystiff.net/articles/seeingMetaclassesClearly.html
>
> The final section is titled Dwemthy's Array and links to the original
> code here: http://poignantguide.net/dwemthy/
>
> I've inlined the most interesting code from that page below.
>
> In a nutshell what it does is dynamically add fields to subclasses of
> the Creature class. The 'traits' line about halfway down says call the
> class method 'traits' passing a array of symbols.
> Creature.traits is a class method. @traits is an instance variable I
> think, my Ruby isn't that great and the fact that it's being accessed
> from a class method is confusing me..
>
> My question is, is this kind of metaprogramming possible in Smalltalk?
Short answer: yes of course.
Smalltalk has all that's needed to create and modify classes in the runtime
(actually, the whole Smalltalk IDE does nothing else but that).
You can create instance-specific behaviors etc.
I won't go into the details of how it is being done.
Have a look at Russell Allen's page at http://russell-allen.com/squeak/prototypes/
for some code.
Cheers,
Hans-Martin
More information about the Squeak-dev
mailing list
|