On Fri, 27 Aug 2010, Nicolas Cellier wrote:

2010/8/27 Levente Uzonyi <[email protected]>:
On Thu, 26 Aug 2010, Lukas Renggli wrote:

I wonder why there is the need for a stack class at all?

OrderedCollection is the class designed to do Stacks and Queues
efficiently and portably, see #addFirst:, #addLast:, #first, #last,
#removeFirst, #removeLast.

If so, then there are some problems:

o := OrderedCollection new: 1000.
1 to: 1000 do: [ :each | o add: each ].
[ 100000 timesRepeat: [ o addFirst: o removeLast ] ] timeToRun. "===> 11660"


Levente


OrderedCollection could be implemented differently, like for example
having a circular array and maintaining a firstIndex and size instead
of lastIndex.

This issue is already fixed in Squeak 4.1. I tried the OrderedCollection with a circular array just like you suggested, but it was a bit slower than Squeak's OrderedCollection. Also note that this is an edge case.


Levente


The main drawback would be that fast copy/replace would have to be
split in two parts.

Nicolas


Lukas

2010/8/26 Bart Gauquie <[email protected]>:

Hi list,

is there a specific reason Stack is extending from LinkedList, instead of
using a LinkedList internally?
To me, it seems that the protocol that LinkedList,
SequenceableCollection,
... provides is not the protocol you expect from a Stack?

Any thoughts on this?

Kind regards,

Bart

--
imagination is more important than knowledge - Albert Einstein
Logic will get you from A to B. Imagination will take you everywhere -
Albert Einstein
Learn from yesterday, live for today, hope for tomorrow. The important
thing
is not to stop questioning. - Albert Einstein
The true sign of intelligence is not knowledge but imagination. - Albert
Einstein
However beautiful the strategy, you should occasionally look at the
results.
- Sir Winston Churchill
It's not enough that we do our best; sometimes we have to do what's
required. - Sir Winston Churchill

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project




--
Lukas Renggli
www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to