कई कारणों से पीट एक दिलचस्प प्रोग्रामिंग भाषा है। आज हम एक कारण पर ध्यान केंद्रित करेंगे: रोल कमांड। रोल कमांड मूल रूप से पोस्टस्क्रिप्ट से था और स्टैक में हेरफेर करने का एक शक्तिशाली तरीका है।
रोल कमांड स्टैक के शीर्ष दो तत्वों को पॉप करता है और उन्हें मापदंडों के रूप में उपयोग करता है। हम पहले मूल्य को पॉपप कहेंगे turnsऔर दूसरे को depth। गहराई n की ओर स्टैक का सबसे ऊपरी तत्व लगेगा, इसे स्टैक में nth तत्व बनाते हैं, और इसके ऊपर के प्रत्येक तत्व को ऊपर ले जाते हैं। यदि turns नकारात्मक है तो यह विपरीत दिशा में किया जाता है। अर्थात्, nth तत्व को शीर्ष पर ले जाया जाता है और अन्य तत्वों को नीचे ले जाया जाता है। ऐसा बार- abs(turns)बार होता है।
चुनौती
एक प्रोग्राम या फ़ंक्शन लिखें जो एक स्टैक में होता है और एक रोल को निष्पादित करने के बाद उस स्टैक को वापस करता है।
नियम
- इनपुट और आउटपुट एक सूची में हो सकता है, सरणी, स्ट्रिंग एक सीमांकक के साथ, एक समय में एक तत्व में पारित, या किसी अन्य उचित प्रारूप में। आउटपुट इनपुट के समान प्रारूप में होना चाहिए।
depthकभी भी नकारात्मक नहीं होगा और स्टैक की लंबाई से अधिक कभी नहीं होगा।- इनपुट स्टैक में हमेशा कम से कम दो तत्व होंगे।
- यह कोड-गोल्फ है इसलिए प्रत्येक भाषा में सबसे कम उत्तर जीतता है। जैसे, मैं एक उत्तर स्वीकार नहीं करूंगा।
- मानक खामियों को मना किया जाता है।
परीक्षण के मामलों
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