Thanks, Daniel! I must admit that the move-to-end looks nice. I'll give 
the map-permutation a try also, to see how much faster it may be.

/Jon

On 2/23/09 7:19 PM, Daniel Ehrenberg wrote:
> Well, here's an inefficient way to do it, but the code is pretty:
> 
> : move-to-end ( n seq -- newseq )
>     [ remove-nth ] [ nth ] 2bi suffix ;
> 
> I guess you could make this all in place to be more efficient, but
> asymptotically this wouldn't really be a win in terms of time (unless
> the index you provide is usually near the end). If you want to do this
> particular operation efficiently, I suggest you use dlists.  But if
> your problem is really to apply a particular permutation to a
> sequence, using a word like this might be the best way to go:
> 
> : map-permutation ( seq permutation -- newseq )
>     swap '[ _ nth ] map ;
> 
> I'd give you a code sample of how to calculate your permutation, but
> I'm not sure exactly what you want to do here.
> 
> Dan
> 
> On Mon, Feb 23, 2009 at 10:05 AM, Jon Kleiser <[email protected]> wrote:
>> Hi,
>>
>> Could somebody tell me the most efficient way to cut an element out of a
>> sequence and put it at the end? I need to repeat this over and over, but
>> each time with a new index. If the index e.g. runs from 1 to 3, the
>> results should be like this:
>>
>> initial { a b c d e f }
>> 1 ->    { a c d e f b }
>> 2 ->    { a c e f b d }
>> 3 ->    { a c e b d f }
>>
>> Sincerely,
>>
>> Jon Kleiser


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to