पायथन 3 / > <> , 177 173 172 167 बाइट्स
5 बाइट्स बंद करने के लिए @mathmandan को धन्यवाद!
खैर यह एक अनुभव था, और एक कोशिश भी। किसी भी गोल्फ सुझाव का स्वागत करते हैं, क्योंकि यह बहुत लंबा है। मैंने पाठ का पुन: उपयोग करने के लिए अपनी पूरी कोशिश की, लेकिन यह काफी मुश्किल था।
तकनीकी रूप से, यह पायथन 3 होगा कि यह प्रोग्राम आउटपुट होना चाहिए (और मैं बदल सकता था कि अगर मैं ऐनक को पूरा नहीं करता - लेकिन उदाहरण में पायथन / सी आउटपुट Python
सूचीबद्ध था)।
aa=" ni nettirw t'nsaw margorp sihT\"\""
v="><>!" #v "><>"r~/
a=", it was built for "+v#\a
print(aa[-3::-1]+"Pytho" +"n"+a)
# .4b;!?lor"!nohtyP r"~/
इसे एक ऑनलाइन> <> दुभाषिया और एक पायथन 3 दुभाषिए पर आज़माएँ (> <> दुभाषिया के लिए आपको मैन्युअल रूप से कोड इनपुट करना होगा)
रिटर्न
This program wasn't written in ><>, it was built for Python!
> में <> और
This program wasn't written in Python, it was built for ><>!
अजगर में।
स्पष्टीकरण (पायथन)
चीजों के पायथन पक्ष के लिए, यह बहुत आसान है। यहां वह कोड है जिसके बारे में हम परवाह करते हैं (मूल रूप से टिप्पणियों के बिना कोड, जिसे #
पायथन में ए द्वारा दर्शाया गया है )। ध्यान दें कि \
जब स्ट्रिंग में उपयोग किया जाता है तो पायथन एक एस्केप चरित्र है, इसलिए स्ट्रिंग में \"
मूल्यांकन "
करता है।
aa=" ni nettirw t'nsaw margorp sihT\"\""
v="><>!"
a=", it was built for "+v
print(aa[-3::-1]+"Pytho" +"n"+a)
हम यहां सबसे ज्यादा परवाह करते हैं कि चर पर किए गए ऑपरेशन क्या हैं aa
:
aa[-3::-1]: reverses the string and chops off the quotation marks (thanks to @mathmandan)
प्रिंट स्टेटमेंट इस प्रकार मूल्यांकन करता है
"This program wasn't written in " + "Pytho" + "n" + ", it was built for ><>!"
स्पष्टीकरण (> <>)
अब हम और अधिक कठिन भाग में पहुँचते हैं। एक बार फिर, यहाँ अनावश्यक बिट्स के साथ कोड हटा दिया गया है।
aa=" ni nettirw t'nsaw margorp sihT\"\
v "><>"r~/
a=", it was built for "+v \a
.4b;!?lor"!nohtyP r"~/
पंक्ति 1:
aa=" ni nettirw t'nsaw margorp sihT\"\
aa= pushes 1 onto the stack (evaluates 10==10, basically)
" ni ... \" pushes the first part plus a \ onto the stack.
\ deflects the pointer downwards
स्टैक अभी (यदि मुद्रित है): \This program wasn't written in
लाइन 2:
ध्यान दें कि लाइन 1 /
से पॉइंटर की स्थिति के कारण लाइन 2 शुरू होती है , और दाएं से बाएं चलती है।
v "><>"r~/
/ deflects the pointer leftwards
~r pops the / off the stack and then reverses it
"><>" pushes ><> onto the stack
v deflects the pointer downwards
स्टैक अभी: ><> ni nettirw t'nsaw margorp sihT
पंक्ति 3:
पिछली पंक्ति की तरह, यह एक पर शुरू होता है \
, जो कि पंक्ति 2 जहां सूचक भेजता है। ध्यान दें कि क्योंकि सूचक लाइन के चारों ओर घूमता है, जब यह पहली बार पहुंचता है तो a
मैं अपना स्पष्टीकरण लिखूंगा कि सूचक कहाँ जाता है (और इस तरह से क्या निष्पादित होता है)
a=", it was built for "+v \a
\aa= deflect and push 1 onto the stack
", i ... " push the string onto the stack
+v sum the last two values pushed and deflect
स्टैक अभी ( x
"आर" और एक स्थान के अतिरिक्त द्वारा गठित चरित्र है। - यह वास्तविक चरित्र नहीं है, बस मुझसे एक प्लेसहोल्डर है):
xof tliub saw ti ,><> ni nettirw t'nsaw margorp sihT
पंक्ति 4:
पॉइंटर बस नीचे की ओर जारी रहता है इसलिए यह लाइन आगे स्पष्टीकरण नहीं देती है।
पंक्ति 5:
शुरू /
और बाईं ओर जा रहा है।
.4b;!?lor"!nohtyP r"~/
~"r Python!" pops x off and adds back r and a space
r reverses the stack
o pops and prints a character
l?!; pushes the length of the stack and stops if it's 0
b4. pushes 11 then 4 then moves to that location (where o is)
स्टैक अभी (आउटपुट उलट):
!nohtyP rof tliub saw ti ,><> ni nettirw t'nsaw margorp sihT
और यह स्पष्टीकरण के लिए होना चाहिए। मुझे बताएं कि क्या स्पष्टीकरण / कोड के बीच कोई असंगतता है या यदि मैंने कुछ भी गलत किया है; मैंने अपने कोड को कुछ और नीचे कर दिया, जबकि मैं स्पष्टीकरण लिखने के बीच में था इसलिए मेरे पास पुराने और नए कोड के मिश्रित बिट्स हो सकते हैं।