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
>

------------------------------------------------------------------------------
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