Problema
Si dispone di un elenco di elementi che si desidera ruotare, spostando gli elementi dall'inizio alla fine dell'elenco o dalla fine all'inizio. Potresti pensare all'elenco come circolare.
Rotate a circular listRuota un elenco circolare
Soluzione
Usa il Spostati in funzione, che fa esattamente questo.
list = {"ape", "bat", "cow", "doe", "ewe", "fox", "gnu", "hog"};
Shift Into( list, 1 ); // move one from the front to the end
Show( list ); // {"bat", "cow", "doe", "ewe", "fox", "gnu", "hog", "ape"};
Shift Into( list, -2 ); // move two from the end to the front
Show( list ); // {"hog", "ape", "bat", "cow", "doe", "ewe", "fox", "gnu"};
Discussione
C'è anche un Spostare funzione che non modifica la lista sorgente ma restituisce una nuova lista.
list = Shift ( list, -2 ); // inefficient! don't do this!
L'esempio sopra dovrebbe usare Spostati in piuttosto che Spostare per evitare di fare copie extra di un elenco. Ma se hai bisogno di una nuova copia, modificata, e hai bisogno di mantenere l'originale, non modificato, usa Spostare .
Guarda anche
Controlla l'indice degli script (Aiuto->Indice degli script) e dai un'occhiata al file Inserire E Rimuovere da funzioni pure.