मैं वह भाषा नहीं हूँ जिसकी आपको तलाश है!


181

क्या यह कष्टप्रद नहीं है जब आप कोड का एक टुकड़ा पाते हैं और आप नहीं जानते कि यह किस भाषा में लिखा गया था? यह चुनौती कुछ हद तक इसे हल करने का प्रयास करती है।

चुनौती

आपको एक प्रोग्राम लिखना होगा जो दो अलग-अलग भाषाओं में चलने पर स्ट्रिंग को आउटपुट करेगा:

This program wasn't written in <language program compiled/interpreted in>, it was built for <other language the program can be run in>!

  • आउटपुट में, भाषा के नामों में आधिकारिक पूंजीकरण होना चाहिए। उदाहरण: CJam, C ++

  • न तो प्रोग्राम को उपयोगकर्ता से कोई इनपुट लेना चाहिए।

  • जब दोनों भाषाओं में चलाया जाता है, तो आउटपुट स्टडआउट या समकक्ष होना चाहिए।

  • किसी भी प्रोग्राम में stderr के लिए कोई आउटपुट नहीं होना चाहिए।

  • आप किसी भी भाषा में टिप्पणियों का उपयोग कर सकते हैं।

  • एक ही भाषा के दो अलग-अलग संस्करण अलग-अलग भाषाओं में गिने जाते हैं।

    • यदि ऐसा किया जाता है, तो कार्यक्रम को प्रमुख संस्करण संख्या का उत्पादन करना चाहिए, और यदि दो अलग-अलग लघु संस्करणों पर चल रहा है, तो लघु संस्करण को भी रिपोर्ट करना चाहिए।

    • आपको पूर्वनिर्मित संस्करण फ़ंक्शंस का उपयोग नहीं करना चाहिए (इसमें वे चर शामिल हैं जिनका पहले से ही रनटाइम पर मूल्यांकन किया गया है)।

उदाहरण आउटपुट:

पर्ल और रूबी:

  • पर्ल: This program wasn't written in Perl, it was built for Ruby!

  • माणिक: This program wasn't written in Ruby, it was built for Perl!

पायथन और सी:

  • अजगर: This program wasn't written in Python, it was built for C!

  • सी: This program wasn't written in C, it was built for Python!

पायथन 2 और पायथन 3:

  • अजगर 2: This program wasn't written in Python 2, it was built for Python 3!

  • पायथन 3: This program wasn't written in Python 3, it was built for Python 2!

पायथन 2.4 और पायथन 2.7:

  • पायथन 2.4: This program wasn't written in Python 2.4, it was built for Python 2.7!

  • पायथन 2.7: This program wasn't written in Python 2.7, it was built for Python 2.4!

यह कोड गोल्फ है इसलिए बाइट्स जीत में सबसे छोटा कोड है।


2
"एक ही भाषा के दो अलग-अलग संस्करण अलग-अलग भाषाओं में गिने जाते हैं।" तो C प्री और पास्ट 99 कमेंट्स के साथ ट्रिक करना मान्य है? आसान ^ ^
13

1
इसे जोड़ा, यह विरोधाभास लगता है लेकिन आपके नियमों के अनुकूल है।
ज़ैबिस

1
व्हॉट्सएप / पाइथन पॉलीग्लॉट कोई नहीं कर रहा है?
चार्ल्स

कोई बात नहीं। 23 कार्यान्वयन देखा
चार्ल्स

इनपुट के रूप में एक निश्चित दुभाषिया गणना के साथ चलाए जाने वाले कार्यक्रम पर निर्भर करता है? यह है, पर स्विचन argv[0]?
बिल्ली

जवाबों:


86

फू / सीजेएम, 70 बाइट्स

"This program wasn't written in ""Foo"", it was built for ""CJam"\@"!"

फू में, जैसा कि कई ने पाया है, यह सिर्फ दोहरे उद्धरण चिह्नों में सब कुछ प्रिंट करता है, और अधिकांश अन्य चरित्रों को अनदेखा करता है या ऐसा कुछ करता है जो ज्यादातर मामलों में आउटपुट को प्रभावित नहीं करता है। संक्षेप में, \@कुछ भी नहीं करता है और तार सभी के रूप में मुद्रित होते हैं।

CJam में, \शीर्ष दो आइटम स्वैप करता है, और @3rd आइटम को शीर्ष पर ले जाता है, जो स्ट्रिंग्स को सही क्रम में व्यवस्थित करता है। और कार्यक्रम समाप्त होने के बाद, स्टैक में छोड़ी गई सभी चीजें स्वचालित रूप से मुद्रित होती हैं।


7
और इसके मज़े के लिए, विखंडन / CJam के लिए एक समान 75-बाइट समाधान है:R"This program wasn't written in ""Fission"", it was built for ""CJam"\@'!O
मार्टिन

3
अच्छा लगा। मेरे पास "This program wasn't written in Clip, it was built for CJam!"3{4-_36+e\}/क्लिप / सीजेएम के लिए था ।
डेनिस

5
मैं एक फू समाधान पोस्ट करने के लिए इस धागे में आया, मुझे एहसास हुआ कि अब तक हर कोई जानता है कि फू पॉलीगॉट लिखना कितना आसान है।
हिस्टोक्रेट

क्या फू प्रोग्रामिंग भाषा युक्ति का कोई लिंक है?
3

1
@ErikE ने कुछ स्पष्टीकरण जोड़ा।
jimmy23013

140

C89 / C99, 171 152 136 114 111 107 105 बाइट्स

@ Hurkyls, @Qwertiys, @ jimmy23013 और @MD XF को आपके संकेत के लिए धन्यवाद।

गोल्फ संस्करण:

c;main(){c=-4.5//**/
-4.5;printf("This program wasn't written in C%d, it was built for C%d!",90-c,98+c);}

अपंग संस्करण:

c;

main()
{
    c = -4.5//**/
    -4.5;
    printf("This program wasn't written in C%d, it was built for C%d!",90-c,98+c);
}

थोड़ा विवरण:

C C के पिछले संस्करणों में इस तरह की बहुस्तरीय टिप्पणी थी:

/*foo*/

C99 के साथ सिंगल लाइन टिप्पणी पेश की गई थी। इस तरह:

//foo

इसलिए यदि आप इस तरह एक लाइन संकलित करते हैं:

c =-4.5//**/
-4.5;

C99 संकलक से संबंधित कोड के लिए होगा:

c = -4.5 -4.5;

जबकि c89 संकलक के लिए प्रासंगिक कोड होगा:

(जैसा कि पहले /एक टिप्पणी का हिस्सा नहीं है और ऑपरेटर के रूप में माना जाता है)

c = -4.5 / -4.5;

10
एक अद्भुत जवाब के लिए +1। सी के साथ अपरिचित लोगों के लिए थोड़ा सा स्पष्टीकरण हालांकि अच्छा होगा।
ace_HongKongIndependence 15

4
@ मेरा मानना ​​है कि यह C99- शैली की टिप्पणियों पर निर्भर करता है। चौथी पंक्ति में, ध्यान दें //**/। C89 में, वह डिवीजन ऑपरेटर एक खाली टिप्पणी करता है। C99 में, //एकल-पंक्ति टिप्पणी शुरू करता है, इसलिए शेष पंक्ति रिक्त है। इसलिए, C89 में, यह (90-(-4.5/-4.5))89 हो जाता है, जबकि C99 में, यह हो जाता है (90-(-4.5-4.5)), जो कि 99 है।
kirbyfan64sos

14
कुछ बाइट्स को बचाने के लिए, के 188-cबजाय का उपयोग करें c==99?89:99
निष्कासित और बंद

1
मुझे नहीं लगता कि आपको असाइनमेंट के साथ अंतरिक्ष और बाहरी कोष्ठक की आवश्यकता है।
पुरकाकूदरी


88

जावास्क्रिप्ट / रूबी, 170 बाइट्स

केवल 2.0 हो सकता है, कम से कम 2.1.5 में काम करने के लिए प्रकट नहीं होता है ... संपादित करें: @ जोर्डन से सलाह के अनुसार अपडेट उम्मीद है कि यह अब कुछ और संस्करणों में काम करेगा!

a='1';c=console=console||eval('def c.log s;$><<s end;c');c.log("This program wasn't written in "+(d=['JavaScript','Ruby'])[b= ~(a=~/1/)]+', it was built for '+d[b+1]+'!')

उस ~ऑपरेटर को गाली देता है कि रूबी =~स्ट्रिंग ( 0) में पहले मैच की स्थिति में लौटने वाले एक रेक्सक्स मैच के रूप में व्यवहार करेगा , लेकिन जावास्क्रिप्ट इसे उसी के रूप में व्यवहार करेगा ( = ~/1/जो संख्यात्मक कार्यों के लिए परिवर्तित है , जिसका मूल्य है)।-1/1/NaN0


यह उत्तर मेरे लिए रूबी 2.1.5 में काम नहीं करता है। मुझे मिलता है:NoMethodError: undefined method `log' for :log:Symbol
EMBLEM

@EMBLEM मेरा परीक्षण OS X में निर्मित रूबी 2.0 पर किया गया था, मैंने इससे आगे कुछ भी परीक्षण नहीं किया है, लेकिन मैं यह निश्चित रूप से एक टिप्पणी जोड़ूंगा कि यह अन्य संस्करण में अच्छी तरह से टूट सकता है!
डोम हेस्टिंग्स

रूबी के हाल के संस्करणों में, एक विधि परिभाषा एक प्रतीक के रूप में विधि का नाम लौटाती है, इसलिए आपकी evalवापसी हो रही है :log। मैं तुम्हें रख कर इसे ठीक कर सकता है लगता है ;cके बाद end=~/ = ~चाल महान है, हालांकि है!
जॉर्डन

आप भी बचा सकते हैं। के $><<sबजाय का उपयोग करके कुछ बाइट्स puts sऔर दोहरे कोट्स का उपयोग करके ताकि आप बैकस्लैश को ड्रॉप कर सकें wasn\'t
जॉर्डन

@ जोर्डन धन्यवाद! मुझे यकीन नहीं है कि मैंने \'दोहरे उद्धरणों के साथ हटाने को हाजिर क्यों नहीं किया , और $><<इसका मतलब है कि मैं आपके द्वारा बताए गए फिक्स को लागू कर सकता हूं और उसी बाइट की गिनती रख सकता हूं!
डोम हेस्टिंग्स

82

पायथन 2 / पायथन 3, 92

"मानक" पायथन संस्करण की जांच (पूर्णांक बनाम फ्लोट डिवीजन) का उपयोग करता है।

print("This program wasn't written in Python %d, it was built for Python %d!"%(3/2*2,4-3/2))

3
सैंडबॉक्स में इस बारे में बात की गई थी और सर्वसम्मति से इस तरह की अनुमति दी गई थी
ब्लू

14
@flawr पायथन और कोबरा को अनुमति दी जाएगी? ;)
बीटा डिके

7
@flawr पायथन वास्तव में कॉमेडी ~~ समूह ~~ देवताओं, मोंटी अजगर के नाम पर है।
उत्पत

@ मंटेंटो यह आपके लिए प्रकट हो सकता है कि "मोंटी" एक जानवर का नाम नहीं है, यह दंड काम नहीं करेगा।
पियरे अरलाउड

57

मछली पकड़ने / > <> 233 217 बाइट्स

v++C-CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+CCCCCCC-CCCCCCCCCCCCCCCCCCC+CCCCCC
\   "This program wasn't written in ""><>"  ", it was built for Fishing!"
>r!`ol?!;32.                         Fishing                     ><>!`N

मछली पकड़ने की मछली पकड़ने वाले मछुआरे पर आधारित एक भाषा है। इस भाषा में एक कार्यक्रम बनाने के लिए जिसे सबसे पहले एक गोदी को परिभाषित करना होगा जिस पर वह चलता है। डॉक केवल एक कार्यक्रम के लिए नियंत्रण प्रवाह प्रदान करता है। इस कार्यक्रम में गोदी है:

v++C-CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+CCCCCCC-CCCCCCCCCCCCCCCCCCC+CCCCCC

जब भी Cआदेश मिलता है, मछुआरा एक निर्देश को पकड़ने के लिए अपनी लाइन फेंक देता है। +और -निर्देश कम होती है और क्रमश: अपनी लाइन की लंबाई बढ़ा सकते हैं। vअपनी फेंक दिशा को नीचे की ओर बदलता है। इस कार्यक्रम में वह जो मछली पकड़ता है वह हैं:

`This program wasn't written in Fishing, it was built for ><>!`N

> <> पानी के माध्यम से आगे बढ़ने वाली मछली पर आधारित एक भाषा है। vआदेश मछली नीचे की ओर बढ़ रहा है, जहां यह तो साथ सही करने के लिए देखा जा सकता है शुरू होता है \आदेश। उद्धरण के बीच सब कुछ स्टैक पर धकेल दिया जाता है। स्ट्रिंग को स्टैक पर धकेलने के बाद, मछली दूसरी तरफ इधर-उधर लपेटती है, जहाँ वह नीचे की ओर परावर्तित होती है \। यह तब स्टैक की सामग्री को प्रिंट करता है:

>r!`ol?!;32.

आप तीसरी पंक्ति पर व्हॉट्सएप में> <> के लिए अपना प्रिंट लूप लगाकर अपने कोड को 13 बाइट्स से कम कर सकते हैं (जो मुझे नहीं लगता कि मछली पकड़ने वाले हिस्से के साथ हस्तक्षेप करेगा, हालांकि मुझे उस भाषा का पता नहीं है)। मुझे यकीन नहीं है कि यह टिप्पणी पूरे कोड को कैसे प्रबंधित करेगी, इसलिए यहां एक hastebin लिंक है: hastebin.com/quqinozizi (मैंने तीसरी पंक्ति पर रिक्ति को गड़बड़ कर दिया होगा, लेकिन मुझे लगता है कि सब कुछ ठीक से संरेखित है)।
कोल

@ यह काम करता है। वास्तव में आपका सुझाव वास्तव में 16 पात्रों को हटा देता है।
TheNumberOne

14
मछली और मछली पकड़ने का बहुवचन ... संभवतः अपनी तरह का पहला!
मार्क के कोवान

यह कितना मज़ेदार है!
21

55

23 / Malbolge, 5688 बाइट्स

                    bCBA@?>=<;:987
                                                                                        6543210/.-,+*)
                                                                                          ('&%$#"!~}|{zy
                                                                                               xwvutsrqponmlk
                                                                                                  jihgfedcba`_^]
                                                                                     \[ZYXWVUTSRQPO
                                                                                               NMLKJIHGFEDCBA
                                                                                    @?>=<;:9y76543
                                                                210/(L,l*)(!E}
                   |B"!~}|{zyxwvu
                                                                                                     tsrqponmlkjiha
                                                                                                  fed]#a`_^]?zZY
                                                                                         XWVUTSRQ3ONMLK
                   JIHGFEDCBA:^>=
                                                                                                       <;:98705.R21q/
                                                                                               .-,+*#G'&%${"!
                                                                                            x>|{zyxwYutm3k
                                                                                                        ponmlkjihg`&^c
                                                                                     ba`_^]\[ZYXWVO
                   sSRQPONMLEi,HG
                                                                                                      FEDCBA@?>=6Z:9
                                                                                    y76543210/.-,+
                                                                                                          *)('&%$#"y?w|u
                   ;sxwvutm3qSonm
                                                                                                       fkjiha'edcba`_
                                                                                            ^]\[ZYXWVUTSRQ
                   PONM/EiIHGFEDC
                               BA@?>7[;:987w5
                                      432+O/o-,%I)('
                                     &}$#z@~}|{zsxw
                   vutsrqponmlkji
                                                                                                 ha'&dFba`_^]\U
                                                                                            yYXWVUTMRQPONM
                   LKDhH*F?DCBA@?
                                                                                                 8\<;:98765432r
                                                                                        0/.-&J*)('&f$#
                                                                                                       "!~}|{zyxwvuts
                                                                                                       rqj0nmOkjihaf_
                                                                                            %cE[!_^]\[=SwW
                                                                                                     VU7SLpPONMLEJI
                                                                                                          HAeEDC%A@?>=<;
                   :9876543210/.-
                                                                                                       ,+$H('&}${A!xw
                          ={]yxwvutsrk1o
                                                                                                 nmOejib(fedcE"
                                                                                                      `_^]?[ZYRvVUT6
                                                                                     RKo2HMLKJIHAe
                                                                                                           EDCBA@?>=<;:9
                    87w5432+O/.-,
                                                                                                 +*)('&%e#"y?w
                                                                                     |{zs9wvun4rqp
                                                                                                      onmlNjib(fedc
                                                                                           ba`_^]\[ZYXWV
                                                                                                   8TMqKPONMLKDh
                                                                                                      +GFEDCB;_?>=<
                                                                                                    ;:9y7654321*N
                    .-,+*)('&f|{A
                                                                                                       !~}|{]yxwvo5s
                                                                                             rqpinmlkjihg`
                                                                                            &dcbD`_^]\[Tx
                                                                        ;WVUTMRQJnN0F
                                                 KDhH*FEDC<A@?
     >=<5Y92765.R?

ध्यान दें कि कार्यक्रम के लिए अनुगामी लाइनफीड की आवश्यकता है। किसी भी पंक्ति में अनुगामी व्हाट्सएप नहीं है, इसलिए कॉपी / पेस्ट ठीक काम करना चाहिए।

सत्यापन

इस ऑनलाइन दुभाषिया में मालबोलेज कोड का परीक्षण करने के लिए , इसे मालबोल कोड क्षेत्र में पेस्ट करें और Load/Resetफिर क्लिक करें Execute

इस ऑनलाइन इंटरप्रेटर में 23 कोड का परीक्षण करने के लिए , इसे सोर्स एरिया में पेस्ट करें , Enterट्रेलिंग लाइनफीड डालने के लिए दबाएं , कंसोल क्षेत्र 23में टाइप करें (डिफ़ॉल्ट 23.dezsy नोटेशन से ऑटो-डिटेक्शन पर स्विच करने के लिए) और क्लिक करें Run Interpreter!


20
यार ... ऐसा लग रहा है कि आपके कोड में एक बम चला गया!
D.Tate

8
o_0 आपने Malbolge कोड कैसे लिखा
Pavel

55

लुआ / सी - 182 164 बाइट्स

#if 0
print"This program wasn't written in Lua, it was built for C!"--[[
#endif
main(){printf("This program wasn't written in C, it was built for Lua!\n");}/*]]--*/

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

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


3
बहुत चतुराई से किया!
गायों ने

2
यदि हटाने में "शामिल <stdio.h>" बहुत चरम है, तो मैं जवाब वापस कर दूंगा।
बेनपॉप

2
//C भाग में टिप्पणी का उपयोग क्यों नहीं किया गया? 2 बाइट बचाता है।
BrainStone

54

जावास्क्रिप्ट / हास्केल, 158 बाइट्स 147 बाइट्स

सामान्य विचार: प्रत्येक की टिप्पणी को दूसरे में वाक्यविन्यास को छलनी करें।

एक पंक्ति में:

u="This program wasn't written in ";v=", it was built for ";j="JavaScript";h="Haskell";{-console.log(u+j+v+h+"!")}//-}main=putStrLn$u++h++v++j++"!"

यह हास्केल कैसा दिखता है:

-- some variable definitions
u = "This program wasn't written in "
v = ", it was built for "
j = "JavaScript"
h = "Haskell"

-- a comment
{-console.log(u+j+v+h+"!")}//-}

-- the main method that does the dirty deed
main = putStrLn $ u ++ h ++ v ++ j ++ "!"

यह जावास्क्रिप्ट की तरह दिखता है:

/* variables can be declared without `var` */
u = "This program wasn't written in ";
v = ", it was built for ";
j = "JavaScript";
h = "Haskell";

/* hey look, an anonymous block! */
{ 
  /* we negate the `undefined` that comes out of console.log */
  -console.log(u+j+v+h+"!")
} 
/* there are two automatic semicolon insertions here:
   one before `}` and one before EOF. */

/* a one-line comment. */
//-}main=putStrLn$u++h++v++j++"!"

3
alertगोल्फ खिलाड़ी है।
wizzwizz4

51

ब्रेनफक / फू, 769 बाइट्स

-[--->+<]>-.[---->+++++<]>-.+.++++++++++.+[---->+<]>+++.[-->+++++++<]>.++.---.--------.+++++++++++.+++[->+++<]>++.++++++++++++.[->+++++<]>-.--[->++++<]>-.-[->+++<]>-.--[--->+<]>--.-----.[++>---<]>++.[->+++<]>-.[---->+<]>+++.--[->++++<]>-.-----.---------.+++++++++++..+++[->+++<]>.+++++++++.-[->+++++<]>-.-[--->++<]>-.+++++.-[->+++++<]>-.+[->++<]>.---[----->+<]>-.+++[->+++<]>++.++++++++.+++++.--------.-[--->+<]>--.+[->+++<]>+.++++++++.+++[----->++<]>.------------.-[--->++<]>-.+++++++++++.[---->+<]>+++.--[->++++<]>-.-[->+++<]>-.--[--->+<]>--.+[---->+<]>+++.[->+++<]>++.[--->+<]>-.------------.+++.++++++++.[---->+<]>+++.++[->+++<]>.+++++++++.+++.[-->+++++<]>+++.+++[->++<]>.+[--->+<]>++..[--->+<]>----."This program wasn't written in Foo, it was built for Brainfuck!"

एक बेहद जटिल और जटिल जवाब ... या नहीं।


21
दमयन्ती, फिर से तुम नहीं फू: डी
बीटा डिके

5
मुझे पसंद है कि आप कैसे सोचते हैं।
पियरे अरलाउड

13
ब्रेनफक में इसे चलाते समय, ब्रेनफक ,पाठ के अंत में इनपुट की प्रतीक्षा करेगा । मेरा मानना ​​है कि असाइनमेंट नियमों के खिलाफ जाता है।
साइमन फोर्सबर्ग

1
@SimonForsberg यह एक लंबा समय है, लेकिन एक दुभाषिया की तरह इसे ऑनलाइन आज़माएं, और मुझे लगता है कि ज्यादातर लोग, ,सेल को 0 पर सेट करता है, EOF के लिए
विनाशकारी नींबू

41

सी / पायथन, 238 चार्ट

यह 100% प्रिंट नहीं करता है जो कि अनुरोधित है, लेकिन काफी करीब है। मेरे वेलेंटाइन डे कार्ड का
रिबूट ।

#define def main(){0?
#define print printf(
#define return 0)));}
#define pass 0);

def main():
    print "This program wasn't written in ",
    pass
    print "Python",
    print ", it was built for ",
    print "C",
    return

main();

5
अगर यह सटीक नहीं है तो यह क्या प्रिंट करता है?
बीटा डिके

4
कि नेस्टेड
प्रिंटफ

4
यह मान्य नहीं है। सी। क्लैंग के बारे में defऔर उसके :बाद शिकायत करता है def main(), और आप वास्तव में मुख्य के लिए एक फ़ंक्शन बॉडी नहीं खोलते हैं। क्या आपने वास्तव में C में अपना उत्तर संकलित करने का प्रयास किया था?
C0deH4cker

5
लाइन #define def main(){0?गायब है
kay

3
#define returnमुझे थोड़ा रोता है ...
corsiKa

32

सी / सी ++, 136

#include<stdio.h>
int main(){
char*a="++",z=sizeof'c'/2;
printf("This program wasn't written in C%s, it was built for C%s!\n",a+z,a+2-z);
}

स्वरूपण के लिए नई लिंक जोड़ी गई हैं। इसे C या C ++ में आज़माएं ।


32
क्या होगा यदि मैं एक ऐसे प्लेटफ़ॉर्म पर हूँ जहाँ int 2 बाइट्स है? मुझे C + संकलक कहां मिल सकता है?
इमिबिज़ सिप

@ मिनीबिस हाहा: पी लेकिन एक गंभीर नोट पर खाली स्ट्रक्चर ट्रिक काम कर सकती है:struct{}s;z=2*sizeof s
grc

31

Befunge / > <> , 141 138 134 133 130 बाइट्स

3 बाइट्स बचा लिया करने के लिए धन्यवाद @Cole

सटीक होने के लिए, मैं Befunge-98 का ​​उपयोग कर रहा हूं।

\"!><> rof tliub saw ti ,egnufeB"   >" rof nettirw t'nsaw margorp sih"'T>:#,_@'~~~~~~
>l?v"!egnufeB rof tliub saw ti ,><>"^
?!;>ol

तथ्यों का उपयोग करना:

  • \ एक दर्पण है> <> और Befunge में स्वैप करें
  • 'string'> <> में एक तार है और 'cBefunge में एक चार है

जब तक आपको Befunge कोड (जो मुझे नहीं लगता कि आप करते हैं) के लिए इसकी आवश्यकता है, तो आप नीचे दिए गए लाइन को बदलकर 3 बाइट्स से दाढ़ी बना सकते हैं?!;>ol
cole

23

PHP / MySQL, 147 बाइट्स

-- $argc;die("This program wasn't written in PHP, it was built for MySQL!");
SELECT("This program wasn't written in MySQL, it was built for PHP!");

17
अंत में, मैं एक थोड़े समझ गया।
मीकलियर

1
आपको दूसरी पंक्ति के कोष्ठकों से छुटकारा पाने में सक्षम होना चाहिए, दो बाइट्स के लिए कम:SELECT"This program wasn't written in MySQL, it was built for PHP!";
msh210

2
लेकिन यह अब PHP में काम नहीं करेगा - यह एक पार्स त्रुटि का कारण होगा। चुनें "..." एक वैध PHP अभिव्यक्ति नहीं है।
रज़वान

22

पायथन 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

और यह स्पष्टीकरण के लिए होना चाहिए। मुझे बताएं कि क्या स्पष्टीकरण / कोड के बीच कोई असंगतता है या यदि मैंने कुछ भी गलत किया है; मैंने अपने कोड को कुछ और नीचे कर दिया, जबकि मैं स्पष्टीकरण लिखने के बीच में था इसलिए मेरे पास पुराने और नए कोड के मिश्रित बिट्स हो सकते हैं।


यह गलत होगा यदि मैंने कहा कि आपको 3 जोड़ना होगा क्योंकि यह अजगर 2 नहीं है। यह ठीक है।
ब्लू

यदि यह अजगर केवल थे, मेरा मानना है कि आप बदल सकते aa[:-2][::-1]के साथ aa[-3::-1]। इस मामले में, बेशक, यह> <> स्वरूपण में हस्तक्षेप कर सकता है, लेकिन शायद यह विचार करने योग्य है कि क्या आपने पहले से ही नहीं किया है। विशेष रूप से मुझे पूरा यकीन है कि आपको vपिछली पंक्ति में नीचे एक स्थान की आवश्यकता है , लेकिन ऐसा लगता है कि print(aa[-3::-1]+"Pytho"नीचे दिए गए 24 वर्णों में फिट होगा a=", it was built for "+, और फिर आप उसके बाद एक स्थान रख सकते हैं +"n"+a)। मुझे यकीन नहीं है कि यह कुछ और टूट जाएगा, लेकिन अगर यह काम करता है तो यह कुछ बाइट्स बचाएगा।
मैथमैनंदन

@ महात्मांदन महान विचार, मैं अपना कोड अपडेट करूंगा और आपको क्रेडिट दूंगा।
कोल

अच्छी नौकरी! FYI करें, मुझे लगता है कि यह पायथन 2 में ठीक काम करेगा, और पायथन 2 में आप प्रिंट स्टेटमेंट में कोष्ठकों को छोड़ कर एक बाइट बचा सकते हैं print aa[-3::-1]+"Pytho" +"n"+a:। एक अन्य प्रश्न हालांकि:> <> संस्करण में, उस पर क्या होता है जो 1मूल रूप से स्टैक पर धकेल दिया गया था?
मैथमैडैन

@mathmandan मुझे लगता है कि मैंने जो दुभाषिया इस्तेमाल किया है, वह चरित्र को प्रिंट नहीं करता है यदि यह अमान्य है या मुद्रित चरित्र बिल्कुल नहीं दिखाता है। मुझे ईमानदारी से 100% यकीन नहीं है कि उस चरित्र को प्रिंट करना क्यों मायने नहीं रखता; मैंने इसे गलती से खोज लिया।
कोल

19

बैच .BAT फ़ाइल / बैच .CMD फ़ाइल, 194 185 बाइट्स

@ECHO OFF
SET a=BAT
SET b=CMD
CALL :F&&GOTO :C||GOTO :O
:C
SET a=CMD
SET b=BAT
:O
ECHO This program wasn't written for %a% File, it was built for %b% File!
GOTO :EOF
:F
md;2>nul
SET v=1

संपादित करें: 9 बाइट्स सहेजे गए, और DLosc! को एक लापता धन्यवाद सही किया

हाँ, BAT और CMD फ़ाइलों के बीच अंतर है। संदर्भ। अनिवार्य रूप से, सीएमडी ERRORLEVELएक SETकमांड को सेट करता है, जबकि बैट नहीं करता है, जिसका अर्थ है कि यहां ERRORLEVELविकृत mdकमांड द्वारा सेट SET v=1एक संस्करण में साफ हो जाता है, लेकिन दूसरे में नहीं। यह स्क्रिप्ट उस समाचार समूह में "रिची" द्वारा दिए गए उदाहरण पर आधारित है।

ध्यान दें कि ऊपर लिखी गई स्क्रिप्ट ENABLEEXTENSIONSनिर्धारित की जानी है ON(यह हर प्लेटफ़ॉर्म पर डिफ़ॉल्ट रूप से है)। नीचे दी गई स्क्रिप्ट स्पष्ट रूप से सही कार्यक्षमता की गारंटी देने के लिए इसे सेट करती है। इसके बिना, SETसीएमडी के लिए कमांड सभी एक्सटेंशन की अनुमति नहीं देता है, और (कुछ सिस्टम पर, शायद) ERRORLEVELउचित रूप से सेट नहीं हो सकता है।

विस्तार किया और टिप्पणी की

@ECHO OFF
setlocal ENABLEEXTENSIONS

REM Call the :FUNC subroutine and branch based on the resulting errorlevel
CALL :FUNC&&GOTO :CMD||GOTO :BAT

REM Just in case. If we reach this, though, hoo-boy ...
GOTO :EOF

:BAT
REM We're a BAT file, so set variables and goto output
SET a=BAT
SET b=CMD
GOTO :OUTPUT

:CMD
REM We're a CMD file, so set variables and goto output
SET a=CMD
SET b=BAT
GOTO :OUTPUT

:OUTPUT
REM Print out the result, then go to end of file
ECHO This program wasn't written for %a% File, it was built for %b% File!
GOTO :EOF

:FUNC
REM Simple subroutine to set the ERRORLEVEL appropriately
md;2>nul
REM Right now, ERRORLEVEL on both CMD and BAT is 1
SET v=1
REM Right now, ERRORLEVEL on CMD is 0, but BAT is still 1

... CMD और बैट के बीच अंतर है?
स्टेन स्ट्रूम

18

जावास्क्रिप्ट / सी, 148 146 143 चार्ट

//\
alert/*
main(){puts/**/("This program wasn't written in "//\
+"Javascript"+/*
"C"/**/", it was built for "//\
+"C!")/*
"Javascript!");}/**/

सी: http://codepad.org/u8UimGLc http://codepad.org/Y80M5jpc http://codepad.org/m4DB2Ndd
जावास्क्रिप्ट: बस ब्राउज़र कोड को कॉपी करें


1
@ क्वर्टी, शानदार!

2
सुंदर।
डेरेक 會 會

16

सीजेम / गोल्फस्क्रिप्ट, 81 78 बाइट्स

"This program wasn't written in "o"GolfScript"", it was built for ""CJam"oo"!"

मूल 81 बाइट संस्करण:

"This program wasn't written in "["CJam"", it was built for ""GolfScript"]-1a%"!"

14

PHP / पर्ल, 98 96 बाइट्स

$a="HP";$b="erl";
//;$a=$b;$b=HP;
print"This code wasn't written in P$a, it was built for P$b!";

डननो अगर यह धोखा दे रहा है या नहीं, क्योंकि जहां तक ​​मैं एक ओपनिंग <?टैग के बिना PHP चलाने का एकमात्र तरीका बता सकता हूं, कुछ ऐसा है php -r $(cat codefile.php)। लेकिन यह मानते हुए कि कानूनी है ... //एक PHP टिप्पणी है, लेकिन पर्ल में यह एक regex है (जो अपने आप में एक बयान में, कुछ भी नहीं करता है)। बाकी बहुत आत्म-व्याख्यात्मक होना चाहिए।

संपादित करें: अब पर्ल-केवल भाग में एक नंगेपन का उपयोग करना। मैं उन दोनों भाषाओं के लिए पहले स्थान पर उपयोग करना चाहता था, लेकिन PHP जब आप ऐसा करते हैं तो एक चेतावनी प्रदर्शित करता है, इसके विपरीत "स्टैडर के लिए कोई आउटपुट नहीं होना चाहिए।"


1
<?'>#';दोनों भाषाओं में मान्य सिंटैक्स है।
प्रिमो

14

रूबी / पायथन, 105 वर्ण

a=["Ruby","Python"];a.sort();print("This program wasn't written in "+a[0]+", it was built for "+a[1]+"!")

यह सचमुच अच्छा है! मुझे विशेष रूप से यह पसंद है कि कोई टिप्पणी नहीं है।
स्टाइल सेपल

14

जावास्क्रिप्ट 1.8 / जावास्क्रिप्ट 1.7, 89 बाइट्स

a=![].reduce;`This program wasn't written in JS 1.${8-a}, it was built for JS 1.${7+a}!`

क्योंकि Array.prototype.reduce 1.8 में नया है

संपादित करें:a उपयोग करने के बजाय सीधे प्रारंभिक द्वारा 7 बाइट्स को बाहर निकालाreverse()

EDIT: 8 बाइट की बचत के JavaScriptरूप में लिखा जा सकता हैJS

संपादित करें: उनका कहना है कि मैं 3 और बाइट्स बचा सकता है अगर मैं चर का उपयोग नहीं करते के लिए धन्यवाद Hedi bकिसी भी अधिक

EDIT: कंप्यूटिंग के द्वारा 6 बाइट्स को गॉकेटेड किया गया है , 7+aऔर 8-aजहाँ a=1कम परिभाषित किया गया है (JS 1.8) और a=0यदि यह परिभाषित नहीं है (JS 1.7)

संपादित करें: Hedi ने 6 और बाइट्स खाए जो टेम्पलेट स्ट्रिंग के उपयोग का सुझाव देते हैं

संपादित करें: ETHproductions के a=!![].reduce;बजाय 2 बाइट्स का सुझाव देते हैंa=[].reduce?1:0;

EDIT: no1xsyzy ने बूलियन चेक को पलटने का सुझाव देते हुए एक और बाइट की शुरुआत की


"जावास्क्रिप्ट" के बजाय "JS" के साथ, दो बार "JS 1." का उपयोग करके आपकी स्ट्रिंग चर b का उपयोग करने से कम है।
हेदी

आप इसे छोटा बनाने के लिए टेम्प्लेट स्ट्रिंग का उपयोग कर सकते हैं: `यह प्रोग्राम JS 1। $ {7 + a} में नहीं लिखा गया था, यह JS 1 के लिए था। $ {8 + a}!`
Hedi

2
मैं लगता है कि आप को बदलने के द्वारा दो बाइट्स बचा सकते हैं a=[].reduce?1:0;करने के लिए a=!![].reduce;
ETHproductions

@ETHproductions धन्यवाद, लेकिन मुझे नहीं लगता कि यह काम करेगा। मैं जरूरत aमूल्य धारण करने के लिए 1या 0नहीं, trueयाfalse
मारियो Trucco

@ETHproductions क्षमा करें, आप सही हैं, मैंने कोशिश की और यह काम करता है। धन्यवाद!
मारियो ट्रूको

13

SWI-Prolog 6 / SWI-Prolog 7, 156 बाइट्स

P='SWI-Prolog ',A=6,B=7,(is_list(""),N=A,M=B;N=B,M=A),atomic_list_concat(['This program wasn\'t written in ',P,N,', it was built for ',P,M,'!'],W),write(W).

इस तथ्य का उपयोग करता है कि डबल-कोट्स ""7 से अधिक पुराने SWI-Prolog संस्करणों में स्ट्रिंग कोड (यानी वर्ण कोड की सूची) हैं, और संस्करण 7 में एक उचित स्ट्रिंग प्रकार हैं। is_list("")इस प्रकार यह संस्करण 7 में गलत होगा और पहले के संस्करणों में सच होगा।


12

बीएफ / एसपीएल, 5342 बाइट्स

मुझे पूरा यकीन है कि यह इस साइट पर पहला शेक्सपियर प्रोग्रामिंग लैंग्वेज पॉलीग्लॉट है।

शायद कोई पुरस्कार जीतने वाला नहीं। बीएफ कोड को अधिनियम / दृश्य / कार्यक्रम के शीर्षक में चुपके से काम करता है। एसपीएल कोड कुछ मामलों को छोड़कर अवधि के बजाय विस्मयादिबोधक बिंदुओं का उपयोग करता है। कार्यक्रम इनपुट लेने के लिए नहीं हैं, इसलिए वर्ण घोषणाओं में अल्पविरामों को "शून्य करके" टिप्पणी की जाती है और कोशिकाओं को कॉमा के चारों ओर चौकोर कोष्ठक लगा दिया जाता है। एक ही प्रक्रिया लागू होती है जब एंटर / एक्सटैंट स्टेटमेंट के चारों ओर चौकोर कोष्ठक छिपाते हैं।

[-][.
Ford,.
Page,.
Act I:]+++++++++[>+++++++++<-]>+++.
Scene I:>[.
[Enter Ford and Page]
Ford:
You is sum of bad bad bad bad bad bad day and sum of bad bad bad bad day and bad bad day!Speak thy mind!
Scene II:]<<++[>++++++++++<-]>.
Page:
You is sum of bad bad bad bad bad bad day and sum of bad bad bad bad bad day and bad bad bad day!Speak thy mind!
Scene III:+.
Page:
You is sum of thyself and day!Speak thy mind!
Scene IV:++++++++++.
Page:
You is sum of thyself and sum of bad bad bad day and bad day!Speak thy mind!
Scene V:>++++[>++++++++<-]>.
Ford:
You is fat fat fat fat fat cat!Speak thy mind!
Scene VI:[-<+>]<<---.
Page:
You is sum of thyself and sum of big pig and pig!Speak thy mind!
Scene VII:++.
Page:
You is sum of thyself and fat cat!Speak thy mind!
Scene VIII:---.
Page:
You is sum of thyself and sum of big pig and pig!Speak thy mind!
Scene IX:--------.
Page:
You is sum of thyself and big big big pig!Speak thy mind!
Scene X:+++++++++++.
Page:
You is sum of thyself and sum of fat fat fat cat and sum of fat cat and cat!Speak thy mind!
Scene XI:<++++[->----<]>-.
Page:
You is sum of thyself and sum of big big big big pig and pig!Speak thy mind!
Scene XII:++++++++++++.
Page:
You is sum of thyself and sum of fat fat fat fat cat and big big pig!Speak thy mind!
Scene XIII:>.
Ford:
Speak thy mind!
Scene XIV:<++++++++++.
Page:
You is sum of thyself and sum of fat fat fat cat and fat cat!Speak thy mind!
Scene XV:<++++[->-----<]>--.
Page:
You is sum of thyself and sum of big big big big big pig and sum of fat fat fat cat and fat cat!Speak thy mind!
Scene XVI:<++++[>++++<-]>++.
Page:
You is sum of thyself and sum of fat fat fat fat cat and fat cat!Speak thy mind!
Scene XVII:-----.
Page:
You is sum of thyself and sum of big big pig and pig!Speak thy mind!
Scene XVIII:>+++++++.
Ford:
You is sum of thyself and sum of fat fat fat cat and pig!Speak thy mind!
Scene XIX:<++++++.
Page:
You is sum of thyself and sum of fat fat cat and fat cat!Speak thy mind!
Scene XX:>-------.
Ford:
You is sum of thyself and sum of big big big pig and cat!Speak thy mind!
Scene XXI:<+++.
Page:
You is sum of thyself and sum of fat cat and cat!Speak thy mind!
Scene XXII:-----.
Page:
You is sum of thyself and sum of big big pig and pig!Speak thy mind!
Scene XXIII:---------.
Page:
You is sum of thyself and sum of big big big pig and pig!Speak thy mind!
Scene XXIV:+++++++++++.
Page:
You is sum of thyself and sum of cat and sum of fat cat and fat fat fat cat.Speak thy mind!Speak thy mind!
Scene XXV:<+++[>-----<-]>.
Page:
You is sum of thyself and sum of big big big big pig and cat!Speak thy mind!
Scene XXVI:+++++++++.
Page:
You is sum of thyself and sum of fat fat fat cat and cat!Speak thy mind!
Scene XXVII:>.
Ford:
Speak thy mind!
Scene XXVIII:<-----.
Page:
You is sum of thyself and sum of big big pig and pig!Speak thy mind!
Scene XXIX:+++++.
Page:
You is sum of thyself and sum of fat fat cat and cat!Speak thy mind!
Scene XXX:>.
Ford:
Speak thy mind!
Scene XXXI:[->++<]>++.
Page:
You is sum of thyself and sum of big big big big big pig and sum of fat fat cat and cat!Speak thy mind!You is sum of thyself and sum of big pig and pig!Speak thy mind!
Scene XXXII:++++.
Page:
You is sum of thyself and big red hog!Speak thy mind!
Scene XXXIII:<+++++[>-----<-]>-.
Page:
You is sum of thyself and big big big big big pig!Speak thy mind!
Scene XXXIV:[-<+>]<------------.
Ford:
Speak thy mind!
Scene XXXV:<-----.
Page:
You is sum of thyself and sum of fat fat fat fat fat fat cat and sum of big pig and pig!Speak thy mind!
Scene XXXVI:+++++++++++.
Page:
You is sum of thyself and sum of fat fat fat cat and sum of fat cat and cat!Speak thy mind!
Scene XXXVII:>.
Ford:
Speak thy mind!
Scene XXXVIII:<+++.
Page:
You is sum of thyself and sum of fat cat and cat!Speak thy mind!
Scene XXXIX:<++++[->-----<]>--.
Page:
You is sum of thyself and sum of big big big big big pig and sum of fat fat fat cat and fat cat!Speak thy mind!
Scene XL:<++++[>++++<-]>++.
Page:
You is sum of thyself and sum of fat fat fat fat cat and fat cat!Speak thy mind!
Scene XLI:>.
Ford:
Speak thy mind!
Scene XLII:<<++++[>----<-]>-.
Page:
You is sum of thyself and sum of big big big big pig and pig!Speak thy mind!
Scene XLIII:<+++++[>++++<-]>-.
Page:
You is sum of thyself and sum of fat fat fat fat cat and sum of fat cat and cat!Speak thy mind!
Scene XLIV:------------.
Page:
You is sum of thyself and sum of big big big big pig and fat fat cat!Speak thy mind!
Scene XLV:+++.
Page:
You is sum of thyself and sum of fat cat and cat!Speak thy mind!
Scene XLVI:++++++++.
Page:
You is sum of thyself and fat fat fat cat!Speak thy mind!
Scene XLVII:>.
Ford:
Speak thy mind!
Scene XLVIII:<--------------.
Page:
You is sum of thyself and sum of big big big big pig and fat cat!Speak thy mind!
Scene XLIX:+++++++++.
Page:
You is sum of thyself and sum of fat fat fat cat and cat!Speak thy mind!
Scene L:+++.
Page:
You is sum of thyself and sum of fat cat and cat!Speak thy mind!
Scene LI:>.
Ford:
Speak thy mind!
Scene LII:>+++++++[<+++++++>-]<++.
Page:
You is sum of thyself and sum of big big big big big pig and big big big big pig!Speak thy mind!
Scene LIII:---.
Page:
You is sum of thyself and fat fat cat!Speak thy mind!
Scene LIV:----.
Ford:
You is sum of thyself and cat!Speak thy mind!
Scene LV:>+++++++[<------>-]<-.
Ford:
You is cat!
Scene LVI:>[.
[Exeunt]

Https://repl.it/E8Hh/23 पर BF का परीक्षण करें

यहाँ पाए गए संकलक पर SPL कोड का परीक्षण किया गया था: https://github.com/drsam94/Spl/


11

रूबी 1.8 / रूबी 1.9, 87

puts"This program wasn't written in Ruby 1.#{?9%49}, it was built for Ruby 1.#{?8%47}!"

रूबी 1.8 में, ?9"9" का ASCII मान है, जो 8 मोडुलो 49 है। रूबी 1.9 में, यह स्ट्रिंग "9" है, और %49एक प्रारूपण ऑपरेशन है जो "9" के बाद से कुछ भी नहीं करता है, जिसमें कोई प्रारूप स्ट्रिंग नहीं है। यह।


11

पायथन 2.7.9 / पायथन 2.7.10, 127 बाइट्स

हमारे पास कुछ ऐसे पोस्ट हैं जो मामूली संस्करणों का उपयोग करते हैं, लेकिन कोई भी ऐसा नहीं है जो अगले स्तर तक नीचे चला गया है ...

import types
n=len(dir(types))
print"This program wasn't written in Python 2.7.%d, it was made for Python 2.7.%d!"%(n%33,-n%52)

Ideone (Python 2.7.10) और repl.it (तकनीकी रूप से Python 2.7.2 ) पर इसे आज़माएं , लेकिन 2.7.9 के समान परिणाम देना चाहिए।

चैंज के हिसाब से पाइथन 2.7.10 :

एक जोड़ी __all__के लिए typesमॉड्यूल।

यह len(dir(types))42 से 43 तक धकेल दिया गया, एक संख्यात्मक अंतर देने से हम वांछित आउटपुट उत्पन्न करने के लिए शोषण कर सकते हैं।


10

पायथन / क्यूबैसिक, 160 142 बाइट्स

पायथन 3 और QBasic 1.1 के साथ परीक्षण किया गया । पायथन 2 में from __future__ import print_functionपंक्ति 4 को जोड़े बिना काम नहीं चलेगा ।

1# DEFSTR A-B
a = "QBasic"
b = "Python"
'';a,b=b,a;PRINT=print
PRINT ("This program wasn't written in " + a + ", it was built for " + b + "!")
  • पायथन में, एक टिप्पणी के बाद 1#की अभिव्यक्ति 1(नो-ऑप) है। QBasic में, यह एक लाइन नंबर है (प्रकार प्रत्यय के रूप में इसे चिह्नित करते हुए DOUBLE)। DEFSTRबयान QBasic बताता है कि सभी चर जिनके नाम के साथ शुरू Aया B(केस-संवेदी) स्ट्रिंग चर हैं। इस तरह, हम अपने चर कह सकते हैं aऔर bइसके बजाय ( a$और b$जो पायथन में काम नहीं करेगा)।
  • QBasic में, 'एक टिप्पणी शुरू करता है। पायथन में, ''खाली स्ट्रिंग (नो-ऑप) है। फिर हम भाषा के नामों को स्वैप करते हैं और printफ़ंक्शन के लिए एक उपनाम परिभाषित करते हैं (क्योंकि QBasic कीवर्ड स्वत: स्वरूपित बड़े अक्षरों में हैं)।
  • अंतिम पंक्ति में कोष्ठक QBasic में आवश्यक नहीं हैं, लेकिन किसी भी चीज़ को चोट नहीं पहुंचाते हैं।

अगर मुझे ऑटोफ़ॉर्मैटर को बंद करने की अनुमति है (जो कि QB64 में एक विकल्प है , हालांकि मूल QBasic में नहीं), तो मैं इसे पायथन 2 का उपयोग करके 114 बाइट्स तक नीचे ला सकता हूं :

1#DEFSTR A-B
a="QBasic"
b="Python"
'';a,b=b,a
print"This program wasn't written in "+a+", it was built for "+b+"!"

-3 बाइट्स: वास्तविक QB64 पर स्विच करें।
कैलक्यूलेटरफैनलाइन


QB64 / पायथन 2 131 बाइट्स है! या 133 बाइट्स के लिए पायथन 3।
कैलकुलेटरफ्लीन

9

पर्ल / रूबी, 129 बाइट्स

0&&eval('def sort a,b;[b,a] end');printf"This program wasn't written in %s, it was built for %s!",(@a=sort"Perl","Ruby")[0],@a[1]

इस में कोई नियमित अभिव्यक्ति का दुरुपयोग नहीं है, बस इस तथ्य का सबसे अधिक उपयोग कर रहा है कि 0 रूबी में सत्य है जो evalपरिभाषा के लिए एक परिभाषा है sort(जो वास्तव में है reverse) और printfआईएनजी। रूबी को तर्कों के लिए सूची का उपयोग करना पसंद नहीं था, इसलिए मुझे प्रत्येक को व्यक्तिगत रूप से करना था।


aएक स्थानीय के विपरीत एक उदाहरण चर क्यों होना चाहिए?
निक हार्टले

@QPaysTaxs @में पर्ल एक वेरिएबल पर यह दर्शाता है कि यह एक सूची है, पर्ल में स्टोरिंग है, $aइसके बजाय कहते हैं, कोई आउटपुट नहीं देता है।
डोम हेस्टिंग्स

ओह समझा। स्पष्टीकरण के लिए धन्यवाद।
निक हार्टले

9

/// और रेटिना , 95 + 3 = 98 बाइट्स

/
//

This program wasn't written in \/\/\/, it was built for Retina!
/?./....(.*)(R.*)!
$2$1///!

-sरेटिना में ध्वज के लिए +3 बाइट्स ।

/// के लिए स्पष्टीकरण

पहला निर्देश है

/
//

कोड के बाकी हिस्सों से सभी newlines निकालता है, जिसके परिणामस्वरूप

This program wasn't written in \/\/\/, it was built for Retina!/?./....(.*)(R.*)!$2$1///!

सब कुछ करने के !लिए सिर्फ एक शाब्दिक और STDOUT मुद्रित है। अगला निर्देश है

/?./....(.*)(R.*)!$2$1/

लेकिन खोज स्ट्रिंग ?.नहीं मिल सकती है, इसलिए कुछ भी नहीं होता है। फिर शेष कोड वह है //!जो एक अधूरा निर्देश है इसलिए कार्यक्रम समाप्त हो गया है, सही स्ट्रिंग मुद्रित किया गया है।

रेटिना के लिए स्पष्टीकरण

/
//

यह बदलने के लिए रेटिना बताता है /के साथ //। लेकिन इनपुट खाली है, इसलिए यह कुछ भी मेल नहीं खाता है।

<empty>
This program wasn't written in \/\/\/, it was built for Retina!

यह दूसरी पंक्ति में स्ट्रिंग के साथ इनपुट को बदलता है।

/?./....(.*)(R.*)!
$2$1///!

यह स्ट्रिंग से मेल खाता है \/\/\/, it was built for Retina!और इसे Retina, it was built for ///!सही परिणाम देने के लिए बदल देता है ।


तुम्हें पता है, मुझे लगता है कि यह रेटिना और
आरएस के

@ kirbyfan64sos शायद, लेकिन यह कितना छोटा होगा? ;)
मार्टिन एंडर

खैर, अब तक मैं 85 बाइट्स + 3 के लिए मिल चुका हूं -s, हालांकि मैंने जो भी कहा वह मजा खराब कर देगा! : D
kirbyfan64sos

1
@ kirbyfan64sos आगे बढ़ें और इसे पोस्ट करें, मुझे नहीं लगता कि मेरे पास जल्द ही किसी भी समय rs में देखने का समय होगा।
मार्टिन एंडर

9

sed / Hexagony 251 बाइट्स

/$/cThis program wasn't written in sed, it was built for Hexagony!
#...>32;p;r;o;g;r;\+/;a;w;23+;m;a<.;.>s;n;+39;t;+32\s/;n;e;;t;i;r;w;<. |.>+32;i;n;+32;H;e\ ;/4+;y;n;o;g;a;x;< i>4;+32;i;t;+32;\;/u;b;23+;s;a;w<h>;i;l;t;+32;f\;/;s;23+;r;o;< T>e;d;+33;@

sed: यह ऑनलाइन की कोशिश करो!
Hexagony: यह ऑनलाइन कोशिश करो!


यदि यह अंत में (हमेशा) खाली स्ट्रिंग से मेल खाता है, तो यह सही स्ट्रिंग में प्रिंट करता है। दूसरी पंक्ति एक टिप्पणी है। इसके लिए STDIN पर एक स्ट्रिंग की आवश्यकता होती है, लेकिन यह खाली हो सकता है ( इस सहमति के आधार पर अनुमति दी गई है )।

उदाहरण:

echo '' | sed -f whatLanguage.sed

हेक्सागोनी में, /बाईं ओर नीचे की ओर पहला रीडायरेक्ट होता है, यह बाईं ओर का अनुसरण करता है, जहां सेड भाग शुरू होता है, फिर बस बाएं से दाएं, एक रेखा से नीचे, दाएं से बाएं, एक रेखा से नीचे, और इसी तरह आगे बढ़ता है। विस्तारित हेक्स इस तरह दिखता है:

         / $ / c T h i s p r 
        o g r a m w a s n ' t 
       w r i t t e n i n s e d 
      , i t w a s b u i l t f o 
     r H e x a g o n y ! # . . . 
    > 3 2 ; p ; r ; o ; g ; r ; \
   + / ; a ; w ; 2 3 + ; m ; a < .
  ; . > s ; n ; + 3 9 ; t ; + 3 2 \
 s / ; n ; e ; ; t ; i ; r ; w ; < . 
| . > + 3 2 ; i ; n ; + 3 2 ; H ; e \ 
 ; / 4 + ; y ; n ; o ; g ; a ; x ; < 
  i > 4 ; + 3 2 ; i ; t ; + 3 2 ; \
   ; / u ; b ; 2 3 + ; s ; a ; w <
    h > ; i ; l ; t ; + 3 2 ; f \
     ; / ; s ; 2 3 + ; r ; o ; < 
      T > e ; d ; @ . . . . . .
       . . . . . . . . . . . .
        . . . . . . . . . . .
         . . . . . . . . . .

मैं हेक्सागोनी को कभी नहीं समझ पाऊंगा ...
डीजेगैमर 98

@ DJgamer98 मुझे वास्तव में यह समझ में नहीं आता है। यह मेरा पहली बार उपयोग कर रहा है।
रिले

आप इस तथ्य का उपयोग करके हेक्सागोनी को थोड़ा छोटा कर सकते हैं ;जो बाइट मान निर्धारित करने के लिए वर्तमान सेल मॉड 256 लेता है (जैसे कि आप P0;वर्तमान सेल मान की परवाह किए बिना एक स्थान प्रिंट कर सकते हैं )। यह CJam स्क्रिप्ट सभी जोड़ियों को उत्पन्न करती है: cjam.tryitonline.net/…
मार्टिन

9

पायथन / रेटिना, 133 120 119 117 115 बाइट्स

अब जब मैं रेटिना और रेगेक्स के बारे में अधिक जानता हूं, तो मैंने इसे थोड़ा और अधिक विकसित किया है। यह भी वास्तव में अब काम करता है।

#?.*
print"This program wasn't written in Python, it was built for Retina!"
#?.*t"

#?(\w+)(,.* )(.+)!"
#$3$2$1!
#

अजगर सिर्फ बयान छापता है। रेटिना पायथन प्रिंट स्टेटमेंट के साथ कुछ भी बदल देता है, फिर printऔर किसी भी उद्धरण को हटा देता है । फिर, मैं स्वैप Pythonऔर Retinaऔर निकालें #

अजगर में कोशिश करो | रेटिना में कोशिश करें



@ jimmy23013 सीमाएँ उस समय मौजूद नहीं थीं जब यह चुनौती पोस्ट की गई थी। यह रेटिना की एक अपेक्षाकृत नई विशेषता है।
mbomb007


8

जावास्क्रिप्ट / कॉफीस्क्रिप्ट, 125 124 बाइट्स

console.log("This program wasn't written in",(a=['Coffee','Java'])[+(b=0=='0')]+"Script, it was built for",a[b^1]+"Script!")

CoffeeScript में, a==bनीचे संकलित किया गया हैa===b , जो मध्यवर्ती स्थिति को गलत बनाता है। मैंने बूलियन मान को पूर्णांक में बदलने के लिए थोड़ा सा जादू का इस्तेमाल किया।

@DomHastings के लिए 1 बाइट धन्यवाद!

125-बाइट संस्करण:

console.log("This program wasn't written in",(a=['Coffee','Java'])[(b=0=='0')+0]+"Script, it was built for",a[b^1]+"Script!")

अच्छा! मुझे लगता है कि आप +(b=0=='0')इसके बजाय एक बाइट बचा सकते हैं +0!
डोम हेस्टिंग्स

इसके बजाय b^1, मुझे लगता है कि आप का उपयोग कर सकते हैं~b
Ismael Miguel

@IsmaelMiguel नोप। यह कहते हैं कि यह के लिए बनाया गया था undefinedScript
kirbyfan64sos

मैं वह भूल गया ~1 == -2। लेकिन के (b=0=='0')+0रूप में लिखा जा सकता है +(b=0=='0')। या b=+(0=='0')। कि 1 बाइट काटनी चाहिए।
इस्माईल मिगुएल

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