Piet es un lenguaje de programación interesante por varias razones. Hoy nos centraremos en una razón: el comando roll . El comando roll fue originalmente de PostScript y es una forma poderosa de manipular la pila.
El comando roll muestra los dos elementos superiores de la pila y los usa como parámetros. Llamaremos al primer valor reventado turns
y al segundo depth
. Un giro hacia la profundidad n tomará el elemento superior de la pila, lo convertirá en el enésimo elemento de la pila y moverá cada uno de los elementos por encima de uno. Si turns
es negativo, esto se hace en la dirección opuesta. Es decir, el enésimo elemento se mueve hacia arriba y los otros elementos se mueven hacia abajo. Esto se repite abs(turns)
veces.
Desafío
Escriba un programa o función que tome una pila y la devuelva después de ejecutar un rollo.
Reglas
- La entrada y salida pueden estar en una lista, matriz, cadena con un delimitador, pasado en un elemento a la vez, o cualquier otro formato razonable. La salida debe estar en el mismo formato que la entrada.
depth
nunca será negativo y nunca será mayor que la longitud de la pila.- La pila de entrada siempre contendrá al menos dos elementos.
- Este es el código de golf, por lo que gana la respuesta más corta en cada idioma. Como tal, no aceptaré una respuesta.
- Las lagunas estándar están prohibidas.
Casos de prueba
in: out:
2
4
1 3
2 4
3 1
4 2
5 5
6 6
in: out:
-2
3
1 2
2 3
3 1
in: out:
-42
0
1 1
2 2
3 3
4 4
5 5