Is there - either as standard, or freely downloadable - a datastructure that is ordered, has constant-time appends of items, requires no particular protocol of the items stored, and can be iterated over (without allocating a new structure) starting with the first item added, proceeding to the next item added? I.e. has the characteristics of a linked list structure in most other datastructure libraries?
On Mon, Jul 28, 2008 at 2:27 PM, Marcin Tustin mm3@zepler.net wrote:
Is there - either as standard, or freely downloadable - a datastructure that is ordered, has constant-time appends of items, requires no particular protocol of the items stored, and can be iterated over (without allocating a new structure) starting with the first item added, proceeding to the next item added? I.e. has the characteristics of a linked list structure in most other datastructure libraries?
I believe it's called an OrderedCollection, and it's in every Smalltalk image you'll find(*).
I recommend reading through Chapter 9 of Squeak by Example (under "Documentation" on http://www.squeak.org/). It give a good explanation of Squeak collections and how to use them.
Gulik.
(*) Perhaps except for Craig Latta's 1337-byte image.
On Sun, Jul 27, 2008 at 10:27:08PM -0400, Marcin Tustin wrote:
Is there - either as standard, or freely downloadable - a datastructure that is ordered, has constant-time appends of items, requires no particular protocol of the items stored, and can be iterated over (without allocating a new structure) starting with the first item added, proceeding to the next item added? I.e. has the characteristics of a linked list structure in most other datastructure libraries?
Have a look at class LinkedList. This is one of the "kernel" classes in Squeak and is used by ProcessorScheduler to manage processes (the "threads" within a Squeak image, instances of class Process). A Squeak Process is implemented as a subclass of Link, and it is kept as an entry in the linked list. Try evaluating "Processor explore" to look at the singleton instance of ProcessorScheduler that manages these linked lists.
Dave
beginners@lists.squeakfoundation.org