Piet est un langage de programmation intéressant pour plusieurs raisons. Aujourd'hui, nous allons nous concentrer sur une raison: la commande roll . La commande roll était à l'origine de PostScript et est un moyen puissant pour manipuler la pile.
La commande roll fait apparaître les deux premiers éléments de la pile et les utilise comme paramètres. Nous appellerons la première valeur sautée turns
et la seconde depth
. Un virage à la profondeur n prendra l'élément le plus haut de la pile, en fera le nième élément de la pile, et déplacera chacun des éléments au-dessus de celui-ci. Si turns
est négatif, cela se fait dans la direction opposée. Autrement dit, le nième élément est déplacé vers le haut et les autres éléments sont déplacés vers le bas. C'est répété plusieurs abs(turns)
fois.
Défi
Écrivez un programme ou une fonction qui prend une pile et retourne cette pile après avoir exécuté un rouleau.
Règles
- L'entrée et la sortie peuvent être dans une liste, un tableau, une chaîne avec un délimiteur, passées dans un élément à la fois, ou tout autre format raisonnable. La sortie doit être au même format que l'entrée.
depth
ne sera jamais négatif et ne sera jamais supérieur à la longueur de la pile.- La pile d'entrée contiendra toujours au moins deux éléments.
- Il s'agit de code-golf, donc la réponse la plus courte dans chaque langue l'emporte. En tant que tel, je n'accepterai pas de réponse.
- Les failles standard sont interdites.
Cas de test
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