[squeak-dev] List of all global variables? (Environments?)

H. Hirzel hannes.hirzel at gmail.com
Mon Apr 3 17:45:12 UTC 2017


P.S. A more elegant solution is mentioned at the bottom of page
http://wiki.squeak.org/squeak/1824

Smalltalk globals reject: [:each | each class isMeta]

Result attached.



For that to work Environment needs the addition of

reject: aBlock
	^ declarations reject: aBlock

in the 'emulating' instance method protocol

On 4/3/17, H. Hirzel <hannes.hirzel at gmail.com> wrote:
> Hello
>
> The recipe: How to list all global variables [1]
>
> has the code snippet
>
>
>
>     Smalltalk keys
>     select:
>     [:k | ((Smalltalk at: k) isKindOf: Class) not]
>        thenCollect:
>       [:k | k -> (Smalltalk at: k) class]
>
>
> to give a list of global variables.
>
>
> When executing this code the recommendation is to use
>
>     Smalltalk globals
>
> instead of
>
>     Smalltalk keys
>
>
> A  rewrite because of Environments not having #select:thenCollect:  (I
> do not think that is necessary) then is
>
>     (Smalltalk globals select: [:k | ((Smalltalk at: k) isKindOf: Class)
> not])
>        collect:  [:k | k -> (Smalltalk at: k) class]
>
> Then I get 'key not found: ExtendedNumberParser'.
>
> I wonder what is going on here ...
>
> Regards
> Hannes
>
>
> [1] http://wiki.squeak.org/squeak/1824
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Global_variables_in_Squeak_Smalltalk_2017-04-03.png
Type: image/png
Size: 41990 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20170403/5f6a8410/attachment.png>


More information about the Squeak-dev mailing list