प्रोग्रामिंग Dichotomies (सचमुच)


33

सादे अंग्रेजी में लिखे एक प्रश्न पर विचार करें, जिसके उत्तर में दो यथोचित सटीक (लेकिन संभावित रूप से चतुर) शब्द या वाक्यांश शामिल होते हैं जिन्हें शब्द और शब्द से अलग किया जा सकता है:

प्रश्न: एक सिक्के के दो पहलू क्या हैं? एक: सिर और पूंछ

प्रश्न: यात्रा करने के सर्वोत्तम तरीके क्या हैं? एक: हवाई जहाज और जेटपैक

क्यू: क्यों एक लेखन डेस्क की तरह एक रावण है? A: क्योंकि दोनों में 'b' है और न में 'n'

लक्ष्य

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

जब हर दूसरे चरित्र कार्यक्रम के साथ शुरू से निकाल दिया जाता दूसरा चरित्र और परिणाम को दोबारा चलाता है, उत्पादन होना चाहिए जो कुछ भी करने के लिए है छोड़ दिया जवाब में की 'और'।

जब प्रत्येक दूसरे चरित्र को पहले चरित्र से शुरू होने वाले कार्यक्रम से हटा दिया जाता है और परिणाम फिर से चलाया जाता है, तो आउटपुट को उत्तर में 'और' के दाईं ओर जो कुछ भी होना चाहिए ।

('और' स्वयं आउटपुट नहीं है।)

उदाहरण

अगर प्रोग्राम है

A1B2C3D4E5F6G7H8I9

और इसका आउटपुट है

What are the two sides of a coin?

तब का आउटपुट ABCDEFGHIहोना चाहिए heads, और आउटपुट का 123456789होना चाहिए tails

सवाल और जवाब के बारे में नियम

  • आप मेरे उदाहरण के सवालों का उपयोग कर सकते हैं लेकिन मैं आपको अपना खुद का बनाने के लिए प्रोत्साहित करता हूं।
  • सवाल और दो जवाब भागों:
    • सब अलग होना चाहिए
    • सामान्य व्याकरणिक सार्थक अंग्रेजी होनी चाहिए
    • केवल मुद्रण योग्य ASCII (हेक्स 20 से 7E) हो सकता है
  • आदर्श रूप से प्रश्न को कैपिटल और पंक्चर किया जाएगा (लेकिन उत्तर होने की आवश्यकता नहीं है)।
  • सवाल कम से कम 30 वर्ण लंबा होना चाहिए और 3.5 से ऊपर या इसके बराबर में एन्ट्रापी होना चाहिए । (स्ट्रिंग में टाइप, हिट गणना , अंतिम एच (एक्स) के लिए देखें ।)
  • दो उत्तर भागों ( [space]and[space]उनके बीच में नहीं) में से प्रत्येक में कम से कम 5 अक्षर होना चाहिए जिसमें 2 से ऊपर या उसके बराबर एन्ट्रापी हो।
  • शब्द और 'दोनों उत्तर भाग में दिखाई दे सकते हैं।

कोड के बारे में नियम

  • 3 कोड स्निपेट में से कोई भी हो सकता है:
    • संकलक / दुभाषिया द्वारा टिप्पणी या कुछ और को पारंपरिक रूप से अनदेखा करें (अतिरिक्त अर्धविराम या दो में डालने के बारे में चिंता न करें, लेकिन अगर आपको लगता है कि यह एक टिप्पणी है तो शायद यह है)
    • मध्य निष्पादन में कार्यक्रम से बाहर निकलें
  • कोड में यूनिकोड और गैर-मुद्रण योग्य ASCII सहित कोई भी वर्ण हो सकता है।
  • इसमें विषम या सम संख्या वाले वर्ण हो सकते हैं।
  • आउटपुट स्टैडआउट या एक फ़ाइल या जो भी उचित लगता है, जाता है। कोई इनपुट नहीं है।

स्कोरिंग

चूंकि मैं गोल्फ के जवाबों को प्रोत्साहित नहीं करना चाहता, लेकिन मैं चतुर उत्तरों को और भी अधिक प्रोत्साहित करना चाहता हूं, स्कोरिंग कोड-गोल्फ और लोकप्रियता प्रतियोगिता के बीच कुछ होगा:

स्कोर = (upvotes - downvotes) - floor((bytes in code that outputs question) / 3)

सबसे ज्यादा अंक जीते।

( बाइट काउंटर के रूप में http://mothereff.in/byte-counter का उपयोग करें ।)


6
गाह, यह जावास्क्रिप्ट की तरह "सामान्य" भाषा में करना बहुत मुश्किल है। मुझे जो सबसे दूर मिल सकता है वह कुछ इस तरह है x0=00;;। बड़ी चुनौती!
दरवाज़े

@Doorknob अपनी नाव को अपवित्र करने के लिए खेद है, लेकिन 00;पारंपरिक रूप से संकलक द्वारा नजरअंदाज कर दिया गया है ...
जॉन ड्वोरक

2
गंभीरता से ... "सेब" में 1.92 की शैनन एंट्रोपी है ???
जॉन ड्वोरक

4
It may have an odd or even number of charactersक्या ऐसे कई किरदार हैं जो विषम नहीं हैं या फिर भी नहीं हैं?
स्नैक

1
@ स्नैक जो लोगों को यह बताता है कि दो उत्तर कोड भागों को समान लंबाई की आवश्यकता नहीं है।
केल्विन के शौक

जवाबों:


55

जावास्क्रिप्ट (148 बाइट्स)

प्रश्न के लिए अलर्ट * बनाने के साइड इफेक्ट के साथ कुछ बकवास साहित्यिक बनाता है। (विभाजन समान है, लेकिन प्रत्येक उत्तर के लिए अलर्ट बना रहा है)।

"';"+alert( 'What is the ideal breakfast???')+/ " ;apl=e"rbta(k"esnc"r.armebplleadc ee g g s(" ) + " \/)k;e"/+ ",t'hceo 'c)a;kye= ailse rat (lpi)e "

विभाजन:

";+lr('hti h da rafs??)/";p="baken".replace   (    /ke/ ,'co');y=alert(p) 

तथा

'"aet Wa steielbekat?'+  alert("scrambled eggs")+"\);"+"the cake is a lie"

 

सवाल: What is the ideal breakfast???

उत्तर: baconऔरscrambled eggs


4
यह इस तरह की गुणवत्ता है जो मुझे इस साइट के बारे में पसंद है! और लोग कहाँ मिल सकते हैं जो ऐसा कर सकते हैं ??
क्रंचर

1
मैंने कामचलाऊ कक्षाएं ली हैं (शायद स्पष्ट रूप से) और मैं आपको हास्य मूल्य के लिए यहां +1 दूंगा। लेकिन जैसा कि सभी एपर्चर विज्ञान इंजीनियरों को पता है, हम विज्ञान के अभ्यासी हैं ... इसलिए वास्तव में, सबसे मजेदार हिस्सा एक साफ बंदूक बनाना है । :-)
डॉ। रेबमू

29

ब्रेनफक (437 वर्ण)

मुझे यह स्वीकार करना होगा कि यह मेरा पहला ब्रेनफैक कार्यक्रम है जो वास्तव में कुछ सार्थक करता है। यह प्रोग्राम कम मेमोरी सिस्टम के लिए अत्यधिक अनुकूलित है क्योंकि यह केवल 4 मेमोरी स्थानों का उपयोग करता है।

सवाल: What are the two main groups of trees?

उत्तर: conifersऔरbroadleafs

-+[[++++++++++++++++++++++[+>++++++[+>++++++++++++<>-+]+>+-+.++++++<+<+-+]+>+++++.+>++.+-..------.-<--..-+-+-+..->.-+-+-+.+<+++.+-+-+-+-+.++++.+++.+<.+>-+++-+++-+++-++.->]]++-+[[+-+-[[+++++++++++++++[>++>+++++>+++++++<<<-]>-->>---<++.+++++++++++++++++.-------.>.<<.>.>--.<++++.<.>>++.<+++.---.<.>>.+++.<++++++++++.<.>--.------------.++++++++.+++++.<.>-------.>-----.<++++++++.>+++.<+.>--.<<.>-.---------.<.>>+.--.<-..>+.<<[<++>-]<-.<]]]]

मुख्य घेरा

कार्यक्रम में मुख्य लूप शामिल हैं (जो वास्तव में एक लूप नहीं है क्योंकि सभी [] -ब्लॉक केवल एक बार निष्पादित होते हैं) और दो खंड।

-+[[        // let answers enter
            * SNIP interleaved answer sections *
]]
++-+[[      // let odd answer and question enter
    +-+-[[  // let question enter
            * SNIP question section *
    ]]
]]

यदि आप स्वतंत्र रूप से वर्गों का परीक्षण करना चाहते हैं, तो आपको मुख्य लूप को ध्यान में रखना चाहिए। स्थान 0 में 1 भी उत्तर में, 1 विषम उत्तर में और 2 प्रश्न अनुभाग में है।

उत्तर अनुभाग

यहां तक ​​कि जवाब (अजीब निर्देश हटा दिए गए):

// location 0 contains minus 1 from main
// set location 1 = 10 * 10 minus 1 = 99 (c)
+++++++++++[>++++++++++<-]>-. // c
++++++++++++.-.     // on
-----.---.          // if
-.+++++++++++++.+.  // ers
<                   // goto 0 (which contains 0)
+-+-+-+-+-          // padding to match length of odd answer

विषम उत्तर (हटाए गए निर्देश भी):

// location 0 contains 1 from main
// set location 1 = 16 * 6 plus 2 = 98 (b)  location used for characters below 'l'
// set location 2 = 16 * 7 plus 2 = 114 (r) location used for 'l' and above
+++++++++++++++[>++++++>+++++++<<-]>++.>++. // br
---.<               // o
-.+++.              // ad
>---.<              // l
+.----.+++++.       // eaf
>+++++++.           // s
>                   // goto 3 (which contains 0)

प्रश्न अनुभाग

मैंने अंतरिक्ष को अलग स्थान पर संग्रहीत करने का निर्णय लिया क्योंकि इसका मूल्य अन्य वर्णों से काफी भिन्न है। इससे स्पेस को बस प्रिंट किया जा सकता है <.>

// location 0 contains 2 from main
// set location 1 = 17 * 2 minus 2 = 32 (space)
// set location 2 = 17 * 5 plus 2 = 87 (W)   location used for characters below 'r'
// set location 3 = 17 * 7 minus 3 = 116 (t) location used for 'r' and above
+++++++++++++++[>++>+++++>+++++++<<<-]>-->>---<++. // W
+++++++++++++++++.  // h
-------.>.<         // at
<.>                 // (space)
.>--.<++++.         // are
<.>                 // (space)
>++.<+++.---.       // the
<.>                 // (space)
>.+++.<++++++++++.  // two
<.>                 // (space)
--.------------.    // ma
++++++++.+++++.     // in
<.>                 // (space)
-------.>-----.     // gr
<++++++++.>+++.     // ou
<+.>--.<            // ps
<.>                 // (space)
-.---------.        // of
<.>                 // (space)
>+.--.<-..>+.       // trees
<<[<++>-]<-.<       // ? (value_of_space * 2 minus 1)

अंतिम अद्यतन

अपने अंतिम अपडेट में मैंने कई गुणा अनुकूलित किया ताकि न्यूनतम निर्देशों का उपयोग किया जाए। साथ ही विषम उत्तर खंड में 'l' से दूसरे वर्ण समूह को भी भारी सुधार साबित हुआ। विषम उत्तर में एकल वर्ण बचत मूल रूप से पूरे कार्यक्रम से दो वर्णों का मतलब है, क्योंकि यह भी उत्तर से पैडिंग को कम करता है। मैंने कुछ अनावश्यक निर्देशों को भी इधर-उधर से हटा दिया और मुझे नहीं लगता कि मैं आगे किसी कोड को ऑप्टिमाइज़ कर सकता हूँ।


23

बैच - 84

इस पर बहुत गर्व है

पूर्ण कार्यक्रम: एक सिक्के के दो पहलू क्या हैं? (कंसोल)

echo What are two sides of a coin?  2>>xx  2>>cc&&eecchhoo  hteaaidlss  2>>xx  2>>cc

केवल: सिर ('सी' फ़ाइल)

eh htaetosdso  on 2>x >c&echo heads 2>x >c

केवल ऑड्स: टेल्स ('x' फ़ाइल)

coWa r w ie faci? >x 2>c&echo tails >x 2>c

दोनों मामलों में त्रुटि आउटपुट को किसी फ़ाइल में रीडायरेक्ट करके काम करता है।


पहले से ही इसे छोटा बनाने का तरीका सोचा गया था, लेकिन कल तक इंतजार करना होगा।
Οurous

3
यह अब तक का उच्चतम स्कोर है: 12 - 28 = -16।
justhalf

20

पायथन - 104 96 (गोल्फ: 76)

मेरा समाधान सरल है (और किसी तरह पठनीय):

"";print 'What is the color of a zebra?' ;""
paraianat= "' b l a c k '"
aparaianat="'w h i t e'"

आउटपुट:

What is the color of a zebra?
black
white

ईमानदारी से, मुझे बिटप्वनर के उत्तर में पहली पंक्ति के लिए विचार मिला।


इससे भी अधिक पठनीय विकल्प: - 113 105 97

"";print 'What is the color of a zebra?' ;""
"p r i n t ' b l a c k '" ;"p r i n t ' w h i t e '"

इससे भी छोटा विकल्प: - 86 76

"";print'What is the color of a zebra?';""
"""";;pprriinntt''bwlhaictke''"""

"शतरंज की बिसात" भी आवश्यकताओं को पूरा करती है।
मार्टिन एंडर

3
@ मार्टिनबटनर ज़ेबरा। :-P
डेविड रिचरबी

ओह, मुझे पसंद है zebra। और यह बिल्कुल 30 अक्षरों के एक सवाल के साथ "गोल्फ" संस्करण में अच्छी तरह से फिट बैठता है। इस प्रकार मैंने अपने समाधान को थोड़ा संशोधित किया है। :)
फाल्को

1
ट्रिपल-उद्धृत स्ट्रिंग्स कोई टिप्पणी नहीं है, लेकिन मल्टी-लाइन स्ट्रिंग्स हैं। चूँकि उनका उपयोग डॉक्टर स्ट्रिंग के रूप में भी किया जाता है , इसलिए वे टिप्पणियों से भ्रमित हो सकते हैं।
फाल्को

1
अद्यतन प्रश्न केवल 29 वर्ण लंबा है।
डेनिस

15

Rebmu : 79 वर्ण या (37 + लंबाई (p1) + 2 * अधिकतम (लंबाई (P2), लंबाई (p3)))

पहले मैं एक 79 अक्षर का समाधान दूंगा जो पूछता है कि आपको कौन सी भाषाएं सीखनी चाहिए? (एन्ट्रापी ४.०, ३० पत्र शामिल नहीं हैं ?) और आपको रेबोल और [रेड] के सुझाव प्रदान करते हैं :

DD  11  DD :do dd {dd  {p{Which languages must you learn?}qt}} pp{{[RReebdo]l}}

यहां उपलब्ध एक अनोखी युक्ति जो अन्य भाषाओं में नहीं है, इस तथ्य का लाभ उठाने से आती है कि घुंघराले ब्रेसिज़ एक असममित स्ट्रिंग सीमांकक हैं, जो कानूनी रूप से घोंसला बना सकते हैं:

my-string: {"It's cool," said {Dr. Rebmu}, "for MANY reasons--like less escaping."}

मुझे एक सामान्यीकृत समाधान तैयार करने दें, जो किसी भी प्रोग्राम पर आसानी से काम कर सकता है जो एस्केप सीक्वेंस का उपयोग नहीं करता है। 79 वर्ण संस्करण शॉर्टकट के लिए पर्याप्त सरल था, लेकिन प्रोग्राम पी 2 और पी 3 के लिए उचित रूप से मनमाने ढंग से प्रोग्राम स्रोत शामिल करने के लिए आपको पूर्ण टेम्पलेट की आवश्यकता होगी। अगर हमने इसका उपयोग किया होता, तो यह 87 वर्ण होते:

DD  11  DD :do dd {dd  {p{Which languages must you learn?}qt}} ddoo{{pp{{[RReebdo]l}}}}

इस सामान्य रूप का उपयोग करने के लिए पैटर्न यह है कि अगर आपके पास चर लंबाई के अनुक्रमिक वर्णों के तीन स्रोत ग्रंथ हैं (चलो एक उदाहरण का उपयोग करें AAA, जैसे ) BBBBB, CCCCCCCतो आप उन्हें कुछ के रूप में इनकोड कर सकते हैं:

DD  11  DD :do dd {dd  {AAAqt}} ddoo{{BCBCBCBCBC C C}}

(ध्यान दें: हालांकि यह पैटर्न उन कार्यक्रमों पर ट्विक किए बिना काम नहीं करेगा जो एस्केप पात्रों का उपयोग करते हैं, यह एक घातक दोष नहीं है। ब्रेसिज़ द्वारा सीमांकित एक स्ट्रिंग में एक बेजोड़ बाएं ब्रेस प्राप्त करना कुछ इस तरह की आवश्यकता होती है {Foo ^{ Bar}... लेकिन आप आसानी से फिर से लिखना कर सकते हैं कि उपयोग करना वैकल्पिक स्ट्रिंग संकेतन "Foo { Bar", और संयुक्त मामलों को एक साथ चिपके हुए के साथ प्रबंधित किया जा सकता है।

तो ... कैसे एक उदाहरण के बारे में? एक बार सामान्य रूप उपलब्ध होने के बाद, यह 573 चरित्र कार्यक्रम 3 पूर्व कोड गोल्फ समाधान से केवल कुछ मिनट में इकट्ठा किया गया था:

DD 11 DD: dd {dd {rj N 0% rN Wa1m2j S {\ x /} D00 Hc & [u [Ze? Wa Qs ~ rpKw [isEL00c [skQdc]] [eEV? KQ [tlQ]] pcSeg - b00 [b00] eZ 1 5] 3] prRJ [si ~ dSPscSqFHs] eZ 1 [s + dCa + wM2cNO]]] | Va | [mpAp2j] prSI ~ w { } LL2w Wl h01tiVsb01n -1 chRVs { } hLceVn01qt}} [sn [{N sbeo [tIt0l1eV} 0e5gXN1 01L {5s0} C {1} 0 {0 Do5f0 0bMe1e0r0} 0]]]: tMw9C9 न्यूमज़ Jl [paN + [KperlCJBn] [NoSwull] {के, जे} बी पी {। } lf EZ - - n [N m {G otothestoreandbuysome more}] {T akeonedownandpassitar ound} c B w P lf]]}}

यदि कोई अपनी पसंद की भाषा में उस कार्यक्रम को लिखने का प्रयास करना चाहता है, और सोचता है कि वे 573 को हरा सकते हैं, तो मुझे बताएं। यदि आप ऐसा करते हैं तो मैं आपको भारी मात्रा में प्रतिष्ठा प्रदान करूंगा - अपनी पसंद की भाषा मान लेना रेम्बु नहीं है, क्योंकि मुझे पता है कि वे कार्यक्रम न्यूनतम नहीं हैं। :-)

कि "बेकार" रिक्ति आपको अंत में मिलती है जब P2 और p3 असंतुलित लंबाई के होते हैं। लेकिन इस मामले में सभी 3 कार्यक्रम अलग-अलग आकार के हैं, इसलिए पी 2 / पी 3 के लिए चुनने के लिए एक विशेष अच्छी जोड़ी नहीं है। (मैंने इन्हें चुना क्योंकि इनपुट के रूप में कोई बाहरी डेटा नहीं था, जैसे भूलभुलैया या जो भी हो, नहीं कि वे समान लंबाई के थे। जबकि मैं नए प्रोग्राम लिख सकता था जो अधिक इष्टतम थे, मैंने पर्याप्त समय बिताया है और बिंदु था आपको नए कार्यक्रम लिखने की ज़रूरत नहीं है ...)

यह काम किस प्रकार करता है

(नोट: मैंने एक और "रचनात्मक" दृष्टिकोण के साथ शुरू किया था जो सुव्यवस्थित नहीं था लेकिन अधिक दिलचस्प-दिखने वाला था। मैंने इसे अपने ब्लॉग पर एक प्रविष्टि में स्थानांतरित कर दिया क्योंकि इस दृष्टिकोण का वर्णन करना पहले से ही लंबा है।)

यहां एक कुंजी कुछ अन्य प्रविष्टियों की तरह "स्ट्रिंग के रूप में eval कोड" प्रवंचना है, इसमें बस असममित स्ट्रिंग सीमांकक का तुरुप का पत्ता है। मैं 80 चरित्र के मामले के कामकाज की व्याख्या करके शुरू करूँगा।

इस मामले की पठनीयता के लिए व्हाट्सएप को समायोजित करते हुए, "संपूर्ण" कार्यक्रम यहां दिया गया है:

DD 11                    ; assign 11 to dd (about to overwrite again)
DD :do                   ; make dd a synonym for DO (a.k.a. "eval")

; eval a string as source code that ends with QUIT (QT)
dd {dd  {p{Which languages must you learn?}qt}}

; we'll never get here, but whatever's here must be legally parseable
pp{{[RReebdo]l}}

यहाँ हम डीडी को एक पर्यायवाची के रूप में स्थापित करते हैं (aka "eval")। लेकिन चाल यह है कि जब आधा कार्यक्रम चलते हैं, तो वे रनिंग कोड को हवा देते हैं जिसका एकमात्र प्रभाव डी को हानिरहित शाब्दिक 1 में परिभाषित करना है।

यहां बताया गया है कि विषम-वर्ण कोड क्या है, व्हॉट्सएप फिर से समायोजित किया गया है:

D 1                      ; assign 1 to d
D d                      ; assign d to itself, so it's still 1
d                        ; evaluates to integer, no side effect
{d pWihlnugsms o er?q}   ; string literal, no side effect
p {Rebol}                ; print "Rebol"

और यहाँ भी समान वर्ण है:

D 1                      ; assign 1 to d
D:od                     ; URL-literal (foo:...), no side effect
d                        ; evaluates to integer, no side effect
{{hc agae utyulan}t}     ; string literal (well-formed!), no side effect
p {[Red]}                ; print "[Red]"

यह वास्तव में ऐसा मामला है कि गैर-आधा कार्यक्रम के लिए, dd {dd {(arbitrary code)qt}}आप जो भी कोड चाहते हैं उसे निष्पादित करेंगे। हालांकि, केवल एक के बजाय मूल्यांकन करने के लिए दो कॉल हैं। ऐसा इसलिए है क्योंकि इंटरेस्टेड कोड में नेस्टेड ब्रेसेस शानदार काम करते हैं, वे डीओ के स्पष्ट व्यवहार को गड़बड़ कर देते हैं। इसलिये:

do {{print "Hello"}}

स्ट्रिंग को एक प्रोग्राम के रूप में लोड करेगा, लेकिन वह प्रोग्राम केवल स्ट्रिंग स्थिर होने के लिए हवा देता है {print "Hello"}। इस प्रकार मैं यहां जिस ट्रिक का उपयोग करता हूं, वह मेरा डीडी (डीओ के समान फ़ंक्शन मान को पकड़े हुए) है और इसे दो बार चलाएं। हालेवर्स स्ट्रिंग के विभिन्न भागों में चबाते हैं, लेकिन वे दोनों को नहीं चबाते हैं यदि सामग्री के लिए सम / विषमता सही है, और क्योंकि हेजिंग के बाद स्ट्रिंग के बाहर जो बचा है वह सिर्फ अभिन्न निरंतर है जो dवे हानिरहित हैं।

इस पैटर्न के साथ कार्यक्रम के व्यवहार को लिखने में कोई चुनौती नहीं है जब यह आधा में नहीं काटा जाता है - आप कुछ भी डाल सकते हैं जब तक कि कोड की वर्ण लंबाई भी समान हो (विषम यदि आप क्यूटी की गिनती कर रहे हैं, जो कि क्वेट है)। यदि आपको विषम संख्या से समान संख्या प्राप्त करने की आवश्यकता है, तो एक स्थान पर फेंक दें (इसलिए पी 1 पर विषम कार्यक्रम लंबाई पी 1 पर मेरे सूत्र में वास्तव में +1 है) । ट्रिक उस इंटरलेस्ड कोड को बाद में लिखती प्रतीत होगी, जिसे पार्सर को पास करना होगा यदि इसे आधा नहीं किया गया है। (इसे क्यूटी के कारण नहीं चलाया जाएगा, लेकिन इसे निष्पादित करने से पहले इसे लोड किया जाना होगा।)

यह मामला तुच्छ है; ppभले ही अपरिभाषित हो, एक प्रतीक के रूप में ठीक लोड होता है, और pप्रत्येक आधे कार्यक्रम में प्रिंट के लिए विभाजित होता है । लेकिन हम फिर से एक स्ट्रिंग शाब्दिक का उपयोग करके एक और चाल कर सकते हैं। आधा कार्यक्रम अभी भी सामान्य रूप से परिभाषित किया गया है, इसलिए हम यह भी कह सकते हैं:

ddoo{{pp{{[RReebdo]l}}}}

पूरे मामले में पार्सर द्वारा उठाया गया एकमात्र हिस्सा होने से प्रतीकात्मक शब्द ddooऔर एक स्ट्रिंग शाब्दिक हो सकता है, फिर हम उस स्ट्रिंग शाब्दिक के अंदर हम जो भी दो कार्यक्रम चाहते हैं उन्हें इंटरलेवे कर सकते हैं और पार्सर को क्रोधित नहीं कर सकते हैं। आधा संस्करण केवल कहेंगे:

do{p{Rebol}}

..तथा...

do{p{[Red]}}

जैसा कि मैं कहता हूं, यह भाग अन्य समाधानों से परिचित है जो कार्यक्रमों को तार के रूप में मानते हैं और उन्हें निकालते हैं। लेकिन प्रतियोगिता के मामले में, जब आप जो प्रोग्राम पैक कर रहे हैं, उसमें नेस्टेड स्ट्रिंग्स होते हैं, जो उनके लिए रिंच में फेंकता है। यहां केवल वही चीजें हैं जो आपको परेशानी में डालती हैं, कैरेट्स ( ^) के माध्यम से भागने का उपयोग किया जाता है ... जिसे आसानी से चारों ओर काम किया जा सकता है।


(छोटा 'धोखा' नोट: मैंने इस समस्या के जवाब में "QUIT" के लिए qt को जोड़ा। वास्तव में, मैंने उद्देश्यपूर्ण तरीके से पहले छोड़ने के लिए संक्षिप्त नाम हटा दिया था ... क्योंकि किसी तरह मैंने सोचा था कि यह केवल कंसोल उपयोग के लिए अच्छा था और सिर्फ ऊपर ले रहा था। दो-अक्षर का स्थान अगर यह एक REPL में नहीं था। मैं इसे जोड़ रहा हूं क्योंकि मुझे लगता है कि मैं गलत था, विशेष रूप से इस मामले के लिए नहीं जोड़ रहा। फिर भी, उस परिवर्तन से पहले यह 2 वर्णों से अधिक लंबा होगा। जब मैंने पहली बार समाधान पोस्ट किया था, तो रेम्बु में एक बग था जिसने इसे वास्तव में काम करने से रखा, भले ही यह होना चाहिए ... अब यह काम करता है।)


आपने वास्तव में अपनी प्रोग्रामिंग भाषा बनाई है?
आवाज

2
@ tjt263 यह बेहतर एक कोड गोल्फ मौजूदा भाषा के "एन्कोडिंग" के बारे में सोचा है REBOL । लोगों ने उदाहरण के लिए पायथ के साथ कुछ ऐसा ही किया है , जो मूल रूप से पायथन को दर्शाता है । लेकिन रेम्बु में काफी दिलचस्प अंतर है कि यह वास्तव में रेबेल पार्सर और "संगत" द्वारा लोड किया जा सकता है। आप इसके बीच में किसी भी समय Rebol में तोड़ सकते हैं, उदाहरण के लिए Hourglass को देखें । यदि आप चाहें तो Rebol और Red चैट में इस पर चर्चा करना अच्छा है।
डॉ। रीबमु

15

पर्ल 186 139 135

"";print'What are the best things in life?';""&&pprriinntt("'hceraurs ht hyeo ulra meennetmaiteiso'n s   o f   t h e i r   w o m e n ")

जीवन में सबसे अच्छी चीजें क्या हैं?

"pitWa r h ettig nlf?;"&print('crush your enemies'                 )

अपने दुश्मनों को कुचलने

";rn'htaetebs hnsi ie'"&print"hear the lamentations of their women"

उनकी महिलाओं के विलाप सुनें

कम लम्बे उत्तर का उपयोग करना:

पर्ल 79 72

"";print'What are my preferred weapons?';""&&pprriinntt("'smwaocredss'")

What are my preferred weapons?(30 बाइट, एच (एक्स) = 3.76) swords(एच (एक्स) = 2,25) और maces(एच (एक्स) 2,2,000)


9

अजगर - 139 103

"";print'What are the ingredients for success?';""; ";" ;id=='"RUaniincboorwnss'";;pprriinntt  id++"'"'

What are the ingredients for success?-> UnicornsऔरRainbows

परीक्षा:

c="\"\";print\'What are the ingredients for success?\';\"\"; \";\" ;id==\'\"RUaniincboorwnss\'\";;pprriinntt  id++\"\'\"\'"
exec c        # What are the ingredients for success?
exec c[::2]   # Unicorns
exec c[1::2]  # Rainbows
print 
print c[::2]  # ";rn'htaeteigeinsfrsces'";"";d="Unicorns";print d+''
print c[1::2] # "pitWa r h nrdet o ucs?;" ; i='Rainbows';print i+""

पुराना संस्करण:

# What are the ingredients for success?
"";print(('What are the ingredients for success?'));""; ";" ;"pHrEiRnEt (C'OUMnEiSc oZrAnLsG'O)"; ";" ; "p,r iTnOtN(Y' RTaHiEn bPoOwNsY'.)"
# Unicorns
";rn('htaeteigeinsfrsces')";"";print('Unicorns');"";", TONY THE PONY."
# Rainbows
"pit(Wa r h nrdet o ucs?);" ; "HERE COMES ZALGO" ;  print('Rainbows')

6

हास्केल, 117

हास्केल के कार्यात्मक प्रतिमान के साथ काम करने का मतलब है कि सब कुछ एक चर को सौंपा जाना चाहिए या लाइन --या ब्लॉक {- -}टिप्पणियों के साथ टिप्पणी की जानी चाहिए ; बिना काम के चलने वाले बकवास कार्य करना बाहर है। इसलिए, अपने आप को समझदार बनाए रखने के लिए, मैंने सवाल और जवाब को उतना ही कम रखा जितना कि नियम अनुमति देते हैं।

प्रश्न: क्या मेरे पास पर्याप्त नहीं हो सकता है?

main=putStrLn{---}"What can I not have enough of?"{- }
=u"Scrank=e"sS"h
omeasi"n
=mpauitnS=tpru taSntprt tmLi

-----}

"जूते" और "केक":

mi=uSrn--"htcnInthv nuho?{ 
uSrn="Shoes"
main=putStr mi
--}
anpttL{-}Wa a  o aeeog f"-}="cakes"
main=putStr anpttL
---

NB के crankतहत "क्या मैं पर्याप्त नहीं हो सकता है?" सार्थक के रूप में नहीं देखा जाना चाहिए।


1
टिप्पणियों की अनुमति नहीं है
गर्व हैस्केलर

और दूसरा एक वैध हैस्केल सिंटैक्स कैसे है?
गौरवशाली हैकेलर

मूल कोड में एक असंगत टिप्पणी ब्लॉक है क्योंकि समापन जोड़ी एक लाइन टिप्पणी में है। "केक" कोड भी कोड की तरह नहीं लगता है - apttL एक फ़ंक्शन नहीं है? कहाँ है = यह परिभाषा में संकेत है? क्या इसे वास्तव में apttLWa नहीं कहा जाता है?
गर्वित हैकेलर

@proudhaskeller ने टिप्पणियों के बारे में नियम को याद किया। उसके लिए माफ़ करना। पहले कार्यक्रम में एक असंगत टिप्पणी ब्लॉक नहीं है। यह बस ठीक है। ब्लॉक टिप्पणियों के भीतर लाइन टिप्पणियां अर्थहीन हैं। दूसरा एक मान्य है क्योंकि लाइन टिप्पणियां मान्य हैं। apttL एक स्ट्रिंग है। ब्लॉक टिप्पणी को बाहर निकालें और आप देखेंगे कि यह "केक" के बराबर है। Wa है , ब्लॉक टिप्पणी में ऐसा है, नहीं, यह नहीं वास्तव में anpttLWa है।
१२:०४

2
@proudhaskeller मेरा सिर GHCi को अपनी ओर से काम करने देता है।
12

4

लिस्प (76 वर्ण)

31-वर्ण प्रश्न, प्रत्येक उत्तर में 6 वर्ण pay लंबाई - पेलोड = 33

'(: (pprriinncc''fmuacghesnitaa))':(princ "What is your favorite pink hue?")

मैं "आपका पसंदीदा रंग क्या है?" का उपयोग करना चाहता था, लेकिन यहां तक ​​कि ब्रिटिश वर्तनी तक फैला हुआ था, यह केवल प्रश्न लंबाई के लिए न्यूनतम 30-चरित्र तक पहुंच गया था, और मुझे दोहरे उद्धरण चिह्नों को संतुलित करने के लिए एक विषम लंबाई वाले प्रश्न की आवश्यकता थी।

वे कहते हैं कि कॉमन लिस्प क्रिया है, लेकिन आपको ऐसा नहीं लगता कि यह वन-लाइनर है। यह भी बहुत अधिक सीमित नहीं है, आपको केवल यह देखने के लिए कि क्या उद्धृत किया जा रहा है और क्या निष्पादित किया गया है, इसके लिए आपको कुछ व्हाट्सएप डालने की आवश्यकता है।

कई लिस्प कार्यान्वयन, रंगों को चिल्लाएंगे, क्योंकि वे प्रतीकों को बड़े पैमाने पर ताना देते हैं। यदि वह आपको परेशान करता है, तो बदल ''fmuacghesnitaaदें ""fmuacghesnitaa""


क्योंकि इस प्रश्न में एक मतदान घटक था, इसलिए मैंने कोशिश की और अधिक वोट प्राप्त करने के लिए ध्यान आकर्षित करने के लिए इसे बढ़ाया। लेकिन इनाम बाहर चला गया है और जैसा कि मैं खुद को अंक नहीं दे सकता हूं :-) मैं इसे रेम्बु की पूर्वजों की भाषा के आधार पर आपके प्रवेश के लिए दूंगा, और यदि आपने पहले नहीं देखा है, तो इसे जांचने के लिए प्रोत्साहित करें! codegolf.stackexchange.com/a/36114/57
डॉ। रेम्बु

3

STATA 295

प्रश्न: अभी बेक करने के लिए सबसे अच्छे डेसर्ट क्या हैं? उत्तर: ब्राउनी और कुकीज़।

स्पष्टीकरण: STATA में कमांड्स को नई लाइनों द्वारा सीमांकित किया गया है।
जबकि "//" STATA में एक टिप्पणी है, "///" कंपाइलर को अगली पंक्ति को जारी रखने और वर्तमान कमांड में इसकी सामग्री को शामिल करने के लिए कहता है।

STATA में कमांड को अक्सर उस बिंदु पर संक्षिप्त किया जा सकता है, जहां उन्हें अद्वितीय रूप से अलग-अलग माना जाता है (इसलिए "जेन" "जी" बन जाता है, "ग्लोबल" "ग्ल" या "ग्ल" "," कैप्चर "" कैप "बन जाता है," प्रदर्शन "डी" बन जाता है, आदि)। डिस्प्ले कमांड स्क्रीन पर टेक्स्ट प्रदर्शित करता है। कैप्चर कमांड सभी त्रुटियों (वाक्यविन्यास त्रुटियों सहित) को कैप्चर करता है, यही कारण है कि यह प्रोग्राम ठीक से संकलित करता है।

मुझे लगता है कि यदि आप किसी भी अतिरिक्त "/" को पहले एक पंक्ति में लगातार 3 के बाद संकलक द्वारा नजरअंदाज कर रहे हैं, तो आप picky प्राप्त करना चाहते हैं। इसके अलावा, "ब्राउनीज़" प्रोग्राम में, तकनीकी रूप से + "" एक टिप्पणी है। लेकिन मेरा दावा है कि यह अभी भी मायने रखता है क्योंकि कैप्चर कमांड अभी भी इसे अप्रासंगिक बना देगा, भले ही यह कोई टिप्पणी न हो।

मेरे बहुत लंबे स्पष्टीकरण को पढ़ने के लिए धन्यवाद। अब कोड के लिए:

"इस समय सेंकना करने के लिए सबसे अच्छे डेसर्ट क्या हैं?"

g   a = "g   q   /b/a/" 
g l= "b = ""b r o w n i e s "
g   c = "g   /b/a/" 
g lpo= "d = ""c o o k i e s "
g   e = "c a p  "  /////
 +  "d i ""$ b "
g   f = "c a p  "  /////
 +  "d i ""$ d "
g   g = "c a p  "  /////
 + "c a p   / / /  "+ "/ / /"
di "What are the best desserts to bake right now?"

"ब्राउनीज़"

g a="    ba"
gl b="brownies"
    g /// 
 p="  "       
g e="   " //
 di "$b"
    cap ///
+" "  
g g="   " //
  cap ///   +"  "
i"htaetebs esrst aergtnw"

"कुकीज़"

    g q /// 
 ="  "        
g c="  ba"
glo d="cookies"
    cap ///
+" "  
g f="   " //
 di "$d"
    cap  ///
+ "       " ///
d Wa r h etdset obk ih o?

2

Ksh (82 वर्ण)

35-वर्ण प्रश्न, प्रत्येक उत्तर में 5 वर्ण pay लंबाई - पेलोड = 37

ec=\'o'(;)eehc(h)oe cChroi m$e1;; '\'
echo  What\'s the  country\'s worst problem?

मैं POSIX से परे फ़ंक्शन डेफिनिशन सिंटैक्स का दुरुपयोग करता हूं। डैश और बैश इसे नहीं ले सकते, लेकिन ksh (सार्वजनिक डोमेन या ATT) कर सकते हैं।

कुछ भी उल्लेखनीय नहीं है, बस थोड़ा सा गूंज रहा है। अभी बर्बाद करोगे तो भविष्य में नहीं मिलेगा।


2

पॉवरशेल 88

"" > $x;{What is my favorite equipment?};"" >> ${x}

${XsXwXoXrXdX};;;${XsXhXiXeXlXdX}

मेरा पसंदीदा उपकरण क्या है? (30 वर्ण, H (X) = 4.0314)

"  x{hti yfvrt qimn?;"> {}
{sword};$XXXXXXX

तलवार (5 वर्ण, H (X) = 2.32193)

">$;Wa sm aoieeupet}" >$x
$XXXXXX;;{shield}

ढाल (5 वर्ण, H (X) = 2.58496)

पूर्ण कार्यक्रम पर यह खाली तारों को एक बिना किसी चर के पुनर्निर्देशित करता है ${x}(उन खाली तारों के लिए उद्धरण का उपयोग एक बकवास स्ट्रिंग बनाने के लिए किया जाता है जो या तो खाली ब्लॉक {}या $xफिर सम-विषम संस्करणों पर पुनर्निर्देशित हो जाता है ), फिर सवाल का प्रिंट करता है और 2 अप्रयुक्त चर घोषित करता है (जो किसी अन्य अप्रयुक्त चर के बगल में मुद्रित और रखा जाता है $XXXXXXया $XXXXXXXविभिन्न मामलों में)।


1

गोल्फस्क्रिप्ट, 51 बाइट्स

"Which are the sides of a coin? ".;""thaeialdss""

उत्पादन

Which are the sides of a coin? 

यह काम किस प्रकार करता है

.;स्ट्रिंग को डुप्लिकेट करता है और कॉपी को हटाता है। ""एक खाली स्ट्रिंग को धक्का देता है। thaeialdssअपरिभाषित है, इसलिए यह कुछ नहीं करता है।

अजीब चार्म

"hc r h ie faci?";"heads"

उत्पादन

heads

यह काम किस प्रकार करता है

; स्टैक से पहली स्ट्रिंग हटाता है।

यहां तक ​​कि चरस भी

Wihaetesdso  on ."tails"

उत्पादन

tails

यह काम किस प्रकार करता है

Wihaetesdsoऔर onनूपुर हैं। .स्टैक पर खाली स्ट्रिंग को डुप्लिकेट करता है।

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