On Thu, Aug 4, 2011 at 9:22 AM, St�phane Ducasse <stephane.ducasse@inria.fr> wrote:

On Aug 4, 2011, at 9:10 AM, Jonathan Kelly wrote:

> Hi,
>
> firstly, is there somewhere that explains what the icons in the system
> browser signify? (eg the three coloured dots)?

... are for collections

>
> More importantly (to me anyway) ... I'm confused - why at: is defined in
> Object and not SequenceableCollection?

at: in Object is because some Object like array have variable size
� � � �#(1 2 3)
� � � �#()
� � � �Array new: 6

have all different sizes

How this is encoded? when you create a class you use variableSubclass: instead of subclass:

Now how to access such elements?
using at:
and this is not only for Array.

BTW Collection subclass: #SequenceableCollection
so Sequenceable is not a variable class just an abstract class.

Now
Object>>at: index
� � � �"Primitive. Assumes receiver is indexable. Answer the value of an
� � � �indexable element in the receiver. Fail if the argument index is not an
� � � �Integer or is out of bounds. Essential. See Object documentation
� � � �whatIsAPrimitive. Read the class comment for a discussion about that the fact
� � � �that the index can be a float."



That's a great explanation. You can read more about that in a post I did a couple of months ago:
http://marianopeck.wordpress.com/2011/05/07/class-formats-and-compiledmethod-uniqueness/

Those I call "variable" are those where you can use #at:� #at:put: for example, etc...�


--
Mariano
http://marianopeck.wordpress.com