आपका (भाषा) सांप कब तक है?


14

से इसे जारी रखते हुए तीसरे क्रम Quine चुनौती, अपने कार्य को एक लिखना है Ouroboros प्रोग्राम है जो संभव के रूप में कई भाषाओं के रूप में उपयोग करता है।

यही है, भाषा ए में, प्रोग्राम पीए लिखें जो भाषा बी में प्रोग्राम पीबी आउटपुट करता है। प्रोग्राम पीबी को प्रोग्राम सी में भाषा सी में आउटपुट करना चाहिए, और इसी तरह जब तक कि प्रोग्राम भाषा में मूल प्रोग्राम पीए आउटपुट नहीं करता है।

आपके पाश में कोई भी दो भाषाएं समान या एक दूसरे के सबसेट या सुपरसेट नहीं हो सकती हैं। लूप में कोई भी प्रोग्राम समान नहीं हो सकता है।

भाषाओं की सबसे लंबी श्रृंखला जीतती है। स्रोत कोड की लंबाई टाई-ब्रेकर होगी।

यहां वेंटरो द्वारा दी गई लंबाई 3 का एक उदाहरण समाधान है।

s='print q<puts %%q{s=%r;print s%%s}>';print s%s

पायथन के साथ यह पर्ल स्निपेट उत्पन्न करता है

print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}>

जो निम्नलिखित रूबी कोड उत्पन्न करता है

puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}

जो फिर मूल पायथन स्निपेट को प्रिंट करता है:

s='print q<puts %%q{s=%r;print s%%s}>';print s%s



@Ypnypn यह एक डुप्लिकेट नहीं है कि यह है? मेरा मतलब यह है कि स्रोत कोड की लंबाई के टाई-ब्रेकर के साथ लूप को यथासंभव लंबे समय तक करना है। इससे पहले किसी को भी लंबाई 4 Ouroborous पोस्ट करने का मौका नहीं मिला :) इसके अलावा एक लूप एक श्रृंखला से अलग है।

यह वास्तव में इस एक के समान है , लेकिन इसके लिए लूप के चारों ओर अनुक्रम की आवश्यकता नहीं थी, इसलिए कोई क्वीन घटक नहीं था।
मार्टिन एंडर

4
50 भाषाओं के जानवर हमें शुरू होने से पहले एक विजेता लगते हैं।

जवाबों:


8

यहाँ 4 भाषाओं का एक लूप है:

सी -> बैश -> बैच -> पायथन -> सी

सी

main(){char *c="echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c";printf(c,34,39,92,34,c,92,34,39,34);}

दे घुमा के

echo "echo print 'main(){char *c=\"echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c\";printf(c,34,39,92,34,c,92,34,39,34);}'"

जत्था

echo print 'main(){char *c="echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c";printf(c,34,39,92,34,c,92,34,39,34);}'

अजगर

print 'main(){char *c="echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c";printf(c,34,39,92,34,c,92,34,39,34);}'

बहुत प्रभावशाली!
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.