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 < >> >>> btc@ >> >>> > wrote: >>>> >>>> >>>> >>>> On Fri, 29 Mar 2019 at 18:57, Tim Mackinnon < >> >>> tim@ >> >>> > 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 > >