Pietはいくつかの理由で興味深いプログラミング言語です。今日は、1つの理由に注目します。ロールコマンドです。rollコマンドはもともとPostScriptからのもので、スタックを操作する強力な方法です。
rollコマンドは、スタックの上位2つの要素をポップし、それらをパラメーターとして使用します。最初の値をポップturns
し、2番目の値を呼び出しますdepth
。深さnへのターンは、スタックの最上位の要素を取得し、スタック内のn番目の要素にし、その上の各要素を1つ上に移動します。turns
負の場合、これは反対方向に行われます。つまり、n番目の要素は上に移動し、他の要素は下に移動します。これは何abs(turns)
度も繰り返されます。
チャレンジ
スタックを取り込んで、ロールの実行後にそのスタックを返すプログラムまたは関数を作成します。
ルール
- 入力および出力は、リスト、配列、区切り文字付きの文字列、一度に1つの要素、またはその他の適切な形式で渡すことができます。出力は入力と同じ形式である必要があります。
depth
負になることはなく、スタックの長さを超えることはありません。- 入力スタックには常に少なくとも2つの要素が含まれます。
- これはコードゴルフなので、各言語で最短の答えが勝ちます。そのため、私は答えを受け入れません。
- 標準的な抜け穴は禁止されています。
テストケース
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