and here's a port to closures... �


On Thu, Jul 22, 2010 at 10:39 AM, Eliot Miranda <eliot.miranda@gmail.com> wrote:


2010/7/22 Sudhakar Krishnamachari <skrishnamachari@gmail.com>

And of course the extensibility it gives:

[ 1->'asd'. 2->'asd'. 3->'dsd' ] asDictionary

I think Travis Griggs' once is much much nicer:

�� �[{�1->'asd'. 2->'asd'. 3->'dsd' } asDictionary] once

when once is sent to a BlockClosure it becomes itself into a CachedBlockClosure that remembers and answers the evaluated value.
You could add selectors to this such as
�� �onceEachSession - destroy the cached value on image startup

It doesn't require any special compiler machinery (unlike ##(...)) and so there are no problems with browsing references or senders within compile-time evaluated forms. �It is easily extensible to different life-times. �It is portable.

my 2�

Eliot

...


On Thu, Jul 22, 2010 at 7:48 PM, Sudhakar Krishnamachari <skrishnamachari@gmail.com> wrote:

> > It's different because evaluated only once, either at method compilation
> or at first execution (lazy initialization).



_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project