Peter - nice spot. I’m glad we kept this thread running as I keep learning more 
of the nooks and crannies.

I keep finding that between odd naming (although in this case I’m shocked I 
missed that one - I need to get better at using spotter) and unfortunate method 
categorisation, that I struggle to find these gems.

If I searched for “wrap”, can I do it over a hierarchy? I need to try that, as 
this would eliminate prefix ordering.



Tim

Sent from my iPhone

> On 29 Mar 2019, at 17:28, Sven Van Caekenberghe <s...@stfx.eu> wrote:
> 
> Haha, great discussion, great find. Amazing that all these things are just 
> already there.
> 
> Pharo/Smalltalk programming is really 'studying the problem and the existing 
> system, moving it to the desired state with as little work as possible' - 
> including the use of frameworks and libraries.
> 
>> On 29 Mar 2019, at 18:08, Peter Kenny <pe...@pbkresearch.co.uk> wrote:
>> 
>> Tim
>> 
>> Going back to your original question, the answer is there all the time but
>> buried in the enormous method dictionaries of the Collection subclasses. If
>> you look at SequenceableCollection>>atWrap: you will see that it does
>> exactly what you want.
>> 
>> To get the item before the first, i.e. the zeroth:
>> #(1 2 3 4) atWrap: 0 => 4
>> 
>> To get the item after the last:
>> #(1 2 3 4) atWrap: 5 => 1
>> 
>> As seen here, the method is inherited by Array, so it should do all you
>> want.
>> 
>> HTH
>> 
>> Peter
>> 
>> 
>> Marcus Denker-4 wrote
>>>> On 29 Mar 2019, at 14:24, Ben Coman &lt;
>> 
>>> btc@
>> 
>>> &gt; wrote:
>>>> 
>>>> 
>>>> 
>>>> On Fri, 29 Mar 2019 at 18:57, Tim Mackinnon &lt;
>> 
>>> tim@
>> 
>>> &gt; wrote:
>>>> Hi Peter - yes of course you are right that its malleable, I guess I’m
>>>> often suprised about the things we leave out and then discover weird
>>>> things we’ve put in.
>>>> 
>>>> I had a quick look at LinkedList (I should have thought of that) - I
>>>> might be able to do something with that (and this is now more out of
>>>> curiosity) - but gosh its an easy way to crash your image. Having linked
>>>> the first to the last, and then tried a quick: list after: $n - I’m now
>>>> guessing I’m stuck in an infinite loop that even Cmd . won’t break out
>>>> of!!!! ouch. 
>>>> 
>>>> If you look at Hier(archy) of LinkList you'll see Semaphore underneath
>>>> it.
>>>> I'm not sure, but there may be some VM magic around Semaphore and Process
>>>> management that makes it fragile to changes.
>>>> I believe there have been some proposals to separate out the Process
>>>> related LinkedList stuff, but I can't remember the exact arguments.
>>> 
>>> Yes, we did that… there is now ProcessList.
>>> 
>>> We ran into that problem far too often “hey, LinkedList can be cleaned up
>>> easily like this!” —> boom, everything broken.
>>> 
>>> Now we have ProcessList where it matters if code is changed to introduce a
>>> message send more and LinkedList where it does not.
>>> 
>>>    Marcus
>> 
>> 
>> 
>> 
>> 
>> --
>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
> 
> 


Reply via email to