[Q] LinkedList
Romain Robbes
romain.robbes at lu.unisi.ch
Mon Mar 21 11:16:12 UTC 2005
Something like this should work:
LinkedList>>at: n
link := self items first.
n - 1 timesRepeat: [link := lint nextLink].
^ link
Romain
On Mar 21, 2005, at 12:05 PM, Matej Kosik wrote:
> Matej Kosik wrote:
>> Hello,
>> LinkedList does not respond to
>> second
>> third
>> ...
>> at:
>> messages. Do you think that it makes sense? I would expect something
>> else. Is this a purpose or an omission?
>
> Actually, the LinkedList responds to those messages, but those methods
> fail with an error
>
> LinkedLists are not indexable
>
> I think that all sequenceable collections should be indexable, even if
> in this particular case the implementation of this operation wouldn't
> have constant time complexity as it is in case of arrays.
>
> When such a functionality misses, and we still need to refer to
> particular linked list elements, it results in a awkward code like:
>
> self should: [(link := mailbox items first) == mail1].
> self should: [(link := link nextLink) == mail2].
> self should: [(link := link nextLink) == mail3].
> self should: [(link := link nextLink) == slit1].
> self should: [(link := link nextLink) == mail4].
> self should: [(link := link nextLink) == slit2].
> self should: [(link := link nextLink) == mail5].
> self should: [(link := link nextLink) == mail6].
> self should: [(link := link nextLink) == slit3].
>
> Instead of its straightforward and clear variant:
>
>
> self should: [(mailbox items at: 1) == mail1].
> self should: [(mailbox items at: 2) == mail2].
> self should: [(mailbox items at: 3) == mail3].
> self should: [(mailbox items at: 4) == slit1].
> self should: [(mailbox items at: 5) == mail4].
> self should: [(mailbox items at: 6) == slit2].
> self should: [(mailbox items at: 7) == mail5].
> self should: [(mailbox items at: 8) == mail6].
> self should: [(mailbox items at: 9) == slit3].
>
>
> --
> http://altair.dcs.elf.stuba.sk/wiki/Kosik/Main
> icq: 300133844
> phone: 0910-993-245
>
More information about the Squeak-dev
mailing list
|