अजगर , 4 बाइट्स
W
~O
इसे ऑनलाइन आज़माएं!
यह मूल रूप से एल्गोरिथ्म को लागू करता है:
क्यू ← इनपुटआर ई पी ई एक टी1।2।3।टी ई एम पी ← क्यूक्यू ← यूनिफ { ० , क्यू - १ }पी आर आई एन टी (टीईएमपी)यू एन टी आई एलटी ई एम पी = 0
एल्गोरिथ्म में पायथ का अनुवाद करने के लिए, हम अधिकतर यह जांच सकते हैं कि प्रत्येक वर्ण का क्या अर्थ है। चूंकि Pyth उपसर्ग अंकन में लिखा है (यानी * + 1 2 3
है (1 + 2) * 3
) हम बहस में छोड़ दिया और भरने से शुरू कर सकते हैं के रूप में हम चले।
W
एक पारंपरिक लूप शुरू करता है। इसके बाद का पहला स्टेटमेंट लूप कंडीशन है और दूसरा स्टेटमेंट उसके बाद लूप बॉडी है। यदि दूसरा स्टेटमेंट खाली है तो यह नो-ऑप बन जाता है । यह जबकि बिल्कुल अजगर की तरह काम करता है, इसलिए यह गैर-शून्य पूर्णांकों को सही और शून्य के रूप में गलत के रूप में मूल्यांकन करेगा।
कुछ समय के बाद पहला कथन न्यूलाइन वर्ण से शुरू होता है। यह पाइथ के "प्रिंट और एक नई लाइन के साथ वापसी" फ़ंक्शन से मेल खाती है। यह एक तर्क लेता है, जो तब मुद्रित होता है और बिना किसी शर्त के वापस भी लौट आता है। यह हमें आवश्यक संचालन करते हुए मध्यवर्ती चरणों को मुद्रित करने की अनुमति देता है।
इस प्रिंट फ़ंक्शन के लिए दिया गया तर्क शुरू होता है ~
जो थोड़ा विशेष है। यदि वर्ण के तुरंत बाद ~
एक चर है तो इसे दो तर्क लगते हैं, अन्यथा यह एक लेता है। चूँकि O
एक चर ~
केवल एक तर्क का उपभोग नहीं करेगा। ~
कार्यों थोड़ा की तरह +=
कई परम्परागत भाषाओं में करता है, हालांकि निकटतम ऑपरेटर के बाद वेतन वृद्धि ऑपरेटर होगा ++
से C
। आप जान सकते हैं कि वर्तमान मूल्य के रूप में x++
उपयोग करना होगा x
, लेकिन इसके बाद x
होगा x+1
। ~
एक ही विचार है, लेकिन पहले तर्क का परिणाम जो भी हो, सामान्यीकृत है। यह कैसे पता चलता है कि किस चर को बाद में संबोधित करना है।
का तर्क ~
है O
जो बहुत सरल है। जब इसका एक तर्क एक पूर्णांक O
होता है, तो 0 से एक से एक मान कम होता है जो पूर्णांक से कम है।
अब आपने देखा होगा O
कि कोई तर्क नहीं है। यहाँ Pyth दुभाषिया कृपया एक अनुमान में भरता है, जो यहाँ परिवर्तनशील है Q
। Q
पायथ में एक विशेष अर्थ है: जब भी यह एक कार्यक्रम में मौजूद होता है, तो पायथ कार्यक्रम कार्यक्रम Q
के इनपुट को असाइन करने के साथ शुरू होता है । चूंकि यह पहले चर में होने वाली है ~
का तर्क Q
भी अब चर कि है ~
करने के लिए एक मूल्य प्रदान करेंगे।
हमारे "पठनीय" कार्यक्रम की तरह लग सकता है:
while print_and_return( assign_variable( Q, unif(0, Q-1) ) ):
pass
और एक नमूना "रन-थ्रू" जैसा दिख सकता है:
- क्यू = 5
O
रिटर्न 3, ~
रिटर्न 5, \n
रिटर्न और प्रिंट 5 जो कि सत्य है
- क्यू = ३
O
रिटर्न ०, ~
रिटर्न ३, \n
रिटर्न और प्रिंट ३ जो कि सत्य है
- क्यू = 0
O
कुछ अप्रासंगिक, ~
रिटर्न 0, \n
रिटर्न और प्रिंट 0 देता है जो कि गलत है
- क्यू = कुछ अप्रासंगिक
- बर्खास्त