बहुभाषी चुनौती


13

( हाल ही में ) अतीत में पॉलीग्लॉट चुनौतियों के साथ हमने जो मज़ा लिया है, उसके बाद कैसे एक चुनौती के बारे में जहां आउटपुट दो भाषाओं में हो सकता है?

आपके उत्तर को बूलियन इनपुट को स्वीकार करने bऔर पाठ को आउटपुट करने की आवश्यकता है "true"या "false"। एक ही कोड उत्पादन, जब किसी अन्य भाषा में चलाने के लिए, की जरूरत है "waar"या "onwaar"या के किसी भी अन्य अनुवाद trueऔर false

इनपुट

  • इनपुट स्पष्ट रूप से भिन्न सत्य / मिथ्या है। स्वीकार्य वास्तविक मान टी / एफ, एक बिट, इंट या (खाली) स्ट्रिंग हैं।
  • इनपुट आपके सबमिशन के सभी हिस्सों के लिए समान होना चाहिए।

उत्पादन

  • STDOUTपॉपअप-विंडो, 3 डी-प्रिंटेड और मेल्ड आदि में रखे गए फंक्शन द्वारा आउटपुट लौटाया जा सकता है ।

  • उत्पादन की स्थिति का प्रतिनिधित्व करने की जरूरत है b। इसलिए एक 'सत्य' को 'सत्य', 'वियर' को प्रोड्यूस करने की जरूरत है ... और 'फाल्सी' को 'असत्य', 'ओनर', आदि की ओर ले जाना चाहिए।

  • विभिन्न भाषाएं अलग-अलग आउटपुट विधियों का उपयोग कर सकती हैं।

भाषाओं का इस्तेमाल किया

  • आपका एक आउटपुट होना जरूरी है "true"और "false"

  • इस चुनौती के लिए प्रोग्रामिंग भाषाओं के विभिन्न संस्करणों को विभिन्न भाषाओं के रूप में गिना जाता है।

  • एक मानव भाषा की विभिन्न बोलियाँ इस चुनौती के लिए विभिन्न भाषाओं के रूप में गिनी जाती हैं।

  • आप बहुभाषाविद को दो से अधिक प्रोग्रामिंग भाषाओं तक विस्तारित कर सकते हैं। प्रत्येक प्रोग्रामिंग भाषा को एक अलग मानव भाषा का उत्पादन करने की आवश्यकता होती है।

सम्मिलित अधिकांश भाषाओं के उत्तर को विजेता घोषित किया जाएगा। बंधे होने पर, बायटेकाउंट को माना जाता है।


क्या यह जानबूझकर किया जाता है कि आपका प्रोग्राम केवल अपने साथ चलने वाले इंटरपीटर / संकलक के संस्करण की जांच कर सकता है?
कोडनमेलांबाडा

1
क्या आवश्यक के स्थान पर "True"और "False"स्वीकार्य हैं "true"और "false"?
जोनाथन एलन

1
@JonathanAllan मेरा बुरा। हां, यह आउटपुट के लिए ठीक है।
steenbergh

3
मुझे एक एसोलंग देखना पसंद है जहाँ आउटपुट 3 डी-प्रिंटेड है और आपको वापस मेल किया जाता है।
ETHproductions

2
लोकप्रियता प्रतियोगिता के लिए यह बहुत व्यापक है। क्या X रचनात्मक रूप से पॉप विपक्ष के दायरे से बाहर हो गया है।
डेनिस

जवाबों:


5

Dyalog एपीएल , 243 237 बाइट्स : 14 भाषाओं, 131 के लिए बढ़ाई *

-6 बाइट्स सोकाकू के लिए धन्यवाद ।

⎕IO←0कई सिस्टम पर डिफ़ॉल्ट की आवश्यकता होती है। के इनपुट के लिए संकेत देता 0या 1

((⎕AV'ëáàÆÅÄòðÓÈÇ')⍳⍎⎕D∩⍨41⊃#⎕WG'APLVersion')⊃⎕⊃s¨⌽(s←{1↓¨⍵⊂⍨⍵=⊃⍵})';,true,adevarat,haqiqiy,otito,tunay,bener,prawda,dogru,vrai,that,wahr,vero,verdade,cierto;,false,fals,yolg''on,eke,mali,palsu,falsz,yanlis,faux,sai,falsch',18',falso'

संस्करण पर निर्भर करता है (9.0 के माध्यम से 16.0, मामूली संस्करणों के साथ) यह अंग्रेजी, स्पेनिश, पुर्तगाली, जर्मन, वियतनामी, फ्रेंच, तुर्की, इतालवी, पोलिश, सुंडानी, फिलिपिनो, योरूबा, उज़्बेक या रोमानियाई में आउटपुट करता है, हालांकि बिना डायक्टिक्स के।

⎕AV⍳'ëáàÆÅÄòðÓÈÇ' टोमिक वी इक्टर (151 142 141 133 132 131 131 121 111 102 101 96) के सूचकांकों में

((... )⍳... )की स्थिति का पता लगाने

मूल्यांकन किया गया

⎕D∩⍨डी igits और के चौराहे

4↑ के चार * पहले अक्षर

1⊃ का दूसरा तत्व

#⎕WG'APLVersion' संस्करण संख्या

(... )⊃तो उपयोग करें कि बीच लेने के लिए

⎕⊃ input'th (0: पहला; 1: दूसरा) तत्व

फ़ंक्शन s (जिसे हम शीघ्र ही परिभाषित करेंगे) में से प्रत्येक पर लागू होता है

का उलटा

(s←{... }) एस के लिए आवेदन किया - जहां रों के रूप में परिभाषित किया गया है

1↓¨ पहला वर्ण प्रत्येक से गिरा दिया गया

⍵⊂⍨ तर्क का विभाजन कहाँ हुआ

⍵= तर्क के पात्र समान हैं

⊃⍵ तर्क का पहला चरित्र

';,true,adevarat,... ,falsch',यह स्ट्रिंग पहले से तय है

18⍴',falso' अठारह वर्णों को उस तार से चक्रीय रूप से लिया गया

* संस्करण 12.1 के बाद से, संस्करण संख्या में बिल्ड नंबर शामिल है, इसलिए इस स्ट्रिंग से लिए गए वर्णों की संख्या में वृद्धि करके, सभी 131 लैटिन लिपि भाषाओं को कवर करना आसान है ।


बहुत अच्छा जवाब! और व्यापकता पर महान सबूत।
४een में

मैं 243 बाइट्स गिनता हूं।
कॉनर ओ'ब्रायन

@ ConorO'Brien फिक्स्ड। धन्यवाद।
Adám

मुझे पता है कि यह देर हो चुकी है, लेकिन आप कुछ बाइट्स को बदलकर और करने के prawdziwyलिए बचा सकते हैं । छोटे रूप यहां बेहतर हैं और आपको बेहतर स्कोर देते हैं। prawdafalszywyfalsz
RedClover

13

6 भाषाएं, 169 बाइट्स

अपेक्षा 0\nया 1\nइनपुट के रूप में, और इसमें शब्द प्रिंट करता है:

  • अजगर 2 (डच vals/waar),
  • पायथन 3 (फ्रेंच faux/vrai),
  • रूबी (अंग्रेजी false/true),
  • सीजाम (नार्वे usant/sant),
  • गोल्फस्क्रिप्ट (डेनिश usand/sand),
  • बेफुंज -93 (इतालवी falso/vero)।

"#{puts gets>?1;exit}"" "#"& 1v
""
print('vwfvaaarlauasrxi'[int(1/2*4+int(input()))::4])
""#";;;;ri"u">"sant"+o
""""
__END__
]0=~"u">"sand"""#@,,,,"vero"  _"oslaf",,,,,@

1
डेनिश में गलत है falsk
8

मैं तुम्हें उस printबयान के लिए दो upvotes देता हूँ !
स्टेनबर्घ

10

सभी कवक, 6 भाषाएँ, 146 बाइट्स

3D अब 3D में! 💥

A vv"faux"0"vrai"mv#<v&#;9*j"kslaf"6j"etke">:#,_@;
; >"otreic"0"oslaf"v^<
&^>"murev"0"muslaf">
&^&<"false"0"true"<
>_>:#,_@
^_^

स्पष्टता के लिए मैंने कोड के दो विमानों को अलग किया है ताकि आप देख सकें कि वे कैसे स्तरित हैं। डिस्क पर इन दोनों ब्लॉकों को ऊपर लाइन के अंत में एक फॉर्म फीड चरित्र के साथ अलग किया जाएगा।

   h"vals"0"waar"<

नियमों ने एक भाषा के अलग-अलग संस्करणों को अलग-अलग भाषाओं के रूप में गिना, इसलिए यह फंज / बीफुंज के छह संस्करण हैं। :)

डेनिस के लिए धन्यवाद , सभी Befunge संस्करणों को अब TIO पर ऑनलाइन परीक्षण किया जा सकता है । वर्तमान में Unefunge और Trefunge वैरिएंट के कार्यशील कार्यान्वयन नहीं हैं, हालाँकि, इसलिए उन लोगों के लिए जो मैं Rc / Funge की सिफारिश करूंगा

Aबेफुज 93 और 96 में नजरअंदाज कर दिया गया है, लेकिन 97 में अबाउट फेस कमांड है और 98 में असमर्थित है और इस तरह प्रतिबिंबित होता है। इसका मतलब है कि 93 और 96 vनीचे की ओर चलते हैं जबकि 97 और 98 प्लेफील्ड के विपरीत दिशा में घूमते हैं।

96 में Befunge ;में लाइन की शुरुआत में जगह के बाद यह एक टिप्पणी के रूप में चिह्नित करता है, ताकि लाइन छोड़ दी जाए और दुभाषिया >तीसरी पंक्ति पर जारी रहे । 93 में, हालांकि, दुभाषिया >दूसरी पंक्ति पर चलता है।

97/98 पथ दाएं से बाएं तक पहली पंक्ति पर जारी है, ;टिप्पणी मार्करों के अंदर अनुभाग पर छोड़ते हुए , &कमांड को पुल करता है , अंत में यू-बेंड अनुक्रम तक पहुंचता है v<^<। Unefunge में, ये दिशा परिवर्तन समर्थित नहीं हैं, इसलिए दुभाषिया दिशा को उलट देता है और टिप्पणियों में पहले छोड़ दिया गया अनुभाग निष्पादित करता है। Befunge / Trefunge में यह बाईं ओर जारी रहता है।

Befunge 97 में mकमांड असमर्थित है और इस प्रकार स्किप हो गई है, इसलिए दुभाषिया पहली पंक्ति के साथ जारी है। 98 में यह 3D-केवल है इसलिए यह Befunge (2D) में परिलक्षित होता है और दुभाषिया vइसके दाईं ओर चौथी पंक्ति में आता है। ट्रेफुंज (3 डी) में यह एक उच्च-निम्न शाखा है जो दूसरे विमान को z- अक्ष के साथ एक स्तर तक स्थानांतरित करता है।

यूनीफंगे मामले के अलावा, हमारे पास प्रत्येक संस्करण है &जो उपयोगकर्ता इनपुट प्राप्त करने के लिए किसी एक कमांड को निर्देशित करने से पहले एक अलग लाइन से अपनी स्ट्रिंग जोड़ी को इकट्ठा कर रहा है । वे कोड पथ फिर सभी ^दूसरे स्तंभ में आदेशों के माध्यम से एक साथ विलय करते हैं, प्रोग्राम को प्लेफील्ड के ऊपर से ऊपर की ओर निर्देशित करते हुए, फिर से नीचे की ओर लपेटते हैं।

अंत में हमारे पास वह ^_^क्रम है जो उपयोगकर्ता इनपुट के आधार पर कौन सा मार्ग तय करता है। यदि 0 है , तो हम सीधे आउटपुट अनुक्रम पर जाते हैं ( >:#,_) झूठी स्ट्रिंग को लिखते हैं । यदि 1 , हम पहले निष्पादित करते हैं >_जो स्टैक से पहली स्ट्रिंग को साफ करता है, और इस प्रकार सच्चे स्ट्रिंग को आउटपुट करता है


एक स्पष्टीकरण सहायक होगा
user41805

1
बहुत अच्छा जवाब; एक ही भाषा के सभी अलग-अलग संस्करणों का उपयोग वास्तव में इस सूक्ष्म बनाता है।
स्टेटबर्घ

5

5 भाषाएँ, 249 बाइट्स

ध्यान दें: \rऔर \eशाब्दिक लाइन-फीड और भागने के पात्र हैं, लेकिन \x5bजैसा होना चाहिए, अन्यथा रूबी रेक्स में चरित्र वर्ग के बारे में शिकायत करती है।

पार्टी के लिए थोड़ा देर से, और किसी भी तरह से विजेता नहीं, लेकिन मैंने धन्यवाद देने की चुनौती के लिए एक पॉलीगोट पर काम करना शुरू कर दिया और लगा कि शायद थोड़ी देर हो जाए इसलिए इसे इस में बदल दिया जाए!

q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])

व्याख्या

अजगर: True/False

q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])

यहाँ हम सेट qकरने के लिए 0//1है जो 0है, तो हम एक है '''स्ट्रिंग है कि अन्य कोड से ज्यादातर होता है, जिसमें एक सरणी की दुकान Falseऔर Trueऔर indicies 0और 1क्रमशः, के लिए इनपुट आवंटित b(जो होना चाहिए 0या 1सूचित करने के लिए Falsyऔर Truthy) तो की वें सूचकांक , दिखा या ।printbaFalseTrue


रूबी: Vrai/Faux

q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])

पायथन लिपि के साथ के रूप में, हम चर को सेट करते हैं q, लेकिन रूबी में यह सेट होता है 0 / /1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord, क्योंकि रूबी इसे 0/"शून्य विभाजित करके" और निम्नलिखित के /रूप में "रेगेक्स शाब्दिक शुरुआत" के रूप में तोड़ता है । इस शाब्दिक का उपयोग करके मैं PHP कोड को छिपाने और पायथन की शुरुआत करने में सक्षम हूं '''। हमें जोड़ना होगा .to_s.ordक्योंकि सही ऑपरेंड के लिए /ए होना चाहिए Fixnum। इस के बाद हम एक समारोह को परिभाषित input()और चर Trueऔर Falseउनके फ्रांसीसी समकक्षों को रोकने के लिए और अंत में एक स्ट्रिंग शुरू 'जो अगली पंक्ति पर जारी है। अंत में हम एक सरणी बनाने aजिसमें "Vrai"और "Faux"और का उपयोग कर उनका चयन input()एड संख्या 0या 1


पर्ल: Waar/Vals

'0//1;\'\'\'<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q}+q{0;True="Vrai";False="Faux";\'';sub a{<><1?Vals:Waar}'
input=prompt;print=alert;True="Vero";False="Falso"//\'#\'\'\'
a=[False,True];b=input();1'+1;print(a[b])

पर्ल में q=..=, q+...+और q-...-ब्लॉकों को असामान्य सीमांकक का उपयोग करके शाब्दिक रूप से उद्धृत किया जाता है, ऊपर दिए गए कोड में मैंने इन के साथ प्रतिस्थापित किया है '...'। अधिकांश कोड एक शाब्दिक स्ट्रिंग में समाहित है, लेकिन हम परिभाषित करते हैं sub a(जिसमें एक ए <><!) होता है जो यह जाँचता है कि यदि STDINकम है 1, तो Waarया तो वापस आ रहा है या Valsprint(a[b])वास्तव में printबुला का परिणाम है sub aके साथ और तर्क की [b]जो एक ArrayRef कि नंगे शब्द होता है b


जावास्क्रिप्ट: Vero/Falso

q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])

पहली पंक्ति को ज्यादातर विभाजन द्वारा टिप्पणी की जाती है 0//1( //जावास्क्रिप्ट में लाइन टिप्पणी है) इसलिए हम अभी सेट qकरते हैं 0। उनके अजगर नाम के लिए जे एस कार्यों मानचित्रण और चर स्थापित करने के साथ अगली पंक्ति सौदों Trueऔर Falseहोना करने के लिए इतालवी तार, अंत में हम रूबी कोड के रूप में ही निष्पादित, इतालवी शब्द की एक सरणी के लिए एक स्थापित करने और एक का उपयोग कर चयन करने inputकी 0या 1


PHP: Ekte/Falsk

die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));

चूंकि PHP केवल <?...?>बाकी सभी चीज़ों के बीच कोड निष्पादित करता है, इसलिए यह हमारा कोड है, यहाँ बस एक लाइन-फीड प्रिंट करता है (वर्तमान लाइन की शुरुआत करने के लिए हमें वापस लाने के लिए) और ANSI एस्केप अनुक्रम को वर्तमान के अंत तक साफ़ करता है लाइन, उसके बाद या Ekteउसके Falskआधार पर कि इनपुट चार ( 0या 1) सत्य है या मिथ्या है।


3

पायथ, पायथन - 28 बाइट्स

#>"onwaar"yQ.q
print input()

आप एक बाइट से छुटकारा पा सकते हैं .qऔर ;अंत में जोड़ सकते हैं ।
बाइकिंगवीकिंग

@BikingViking मुझे ऐसा नहीं लगता, कि यह एक अनंत लूप बना देगा।
माल्टासेन


3

सी #, जावा, 104 बाइट्स

golfed:

String M(Boolean b){String s=b+"";if(s=="True")return "Wahr";if(s=="False")return "Falsch";return b+"";}

Ungolfed:

  class MultiLingualChallenge
  {
    public String M(Boolean b)
    {
      String s = b + "";
      if (s == "True")
        return "Wahr";
      if (s == "False")
        return "Falsch";
      return b + "";
    }
  }

परीक्षा:

सी#

Console.WriteLine(new MultiLingualChallenge().M(true));
//Wahr
Console.WriteLine(new MultiLingualChallenge().M(false));
//Falsch

जावा

System.out.println(new MultiLingualChallenge().M(true));
//true
System.out.println(new MultiLingualChallenge().M(false));
//false

स्पष्टीकरण:

जब बुला ToString()या toString()क्रमशः सी # और जावा में एक बूलियन पर, सी # एक पूंजी पहले अक्षर के साथ स्ट्रिंग प्रिंट, Trueऔर False, लेकिन जावा लोअर केस में सभी प्रिंट trueऔर false

Console.WriteLine(true+"");
//True

System.out.println(true+"");
//true


1

लुआ / जावास्क्रिप्ट, 68 बाइट्स

x=1//1print(...and"true"or"false")
--x;alert(prompt()?"vrai":"faux")

पता नहीं क्यों मैंने इसे गोल्फ दिया; मुझे तो ऐसा ही लगा।


1

जावास्क्रिप्ट / बीएफ

इन दोनों भाषाओं में, किसी भी इनपुट को गलत नहीं माना जाता है और किसी भी इनपुट को सच माना जाता है।

जब आप प्रोग्राम की संरचना को बाईं ओर 90 डिग्री घुमाते हैं, तो बीएफ प्रतीक शहर में टावरों की तरह दिखते हैं :)

इसे ऑनलाइन आज़माएं (BF true testcase)!

इसे ऑनलाइन आज़माएं (BF false testcase)!

console.log(prompt()?"true":"false")
/*
           >,[>
+          <<]>>[->-<]
+          >[<->[-]]<>[-]<[>>
+++        [->
++++       <]>[->
++++++++++ <]>---.>]>
++++++++++ [->
++++++++++ <]
+++        [->
+++++      <]>.<
++++       [->----<]>--.<
+++        [->
++++       <]>
+          .<
+++        [->---<]>-.
*/

व्याख्या

जावास्क्रिप्ट

अगर promptयह सच है (यानी खाली नहीं है क्योंकि promptएक स्ट्रिंग लौटाता है), आउटपुट true, या फिर अन्य आउटपुट false

बीएफ

आउटपुट sand(सत्य के लिए डेनिश) यदि कोई इनपुट है, या usandयदि इनपुट खाली है, तो आउटपुट (गलत) है।

TL; DR यदि इनपुट खाली नहीं है (यानी सत्य), तो कुछ भी आउटपुट न करें। यदि इनपुट खाली है (यानी गलत), आउटपुट u। फिर, परवाह किए बिना कि इनपुट सही है या गलत, आउटपुट sand

मैंने https://esolangs.org/wiki/Brainfuck_algorithms से प्रेरणा ली है जिसके साथ मैंने अपने कार्यक्रम के तर्क का निर्माण किया।

इनपुट लें यदि इनपुट खाली नहीं है, तो वृद्धिशील मेमोरी, चलो इस सेल को "सेल ए" कहते हैं। अंत अगर बयान

>
,[
>+
<<
]>

के साथ "सेल ए" के मूल्य की तुलना करता है 0। यदि वे समान हैं, तो "सेल बी" होने दें 1, अन्यथा इसे रहने दें 0

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

यदि "सेल बी" 1 है, तो आउटपुट u। बंद करें अगर-बयान

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

उत्पादन sand

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

BF संस्करण के लिए, यह uसशर्त रूप से आउटपुट नहीं होना चाहिए s?
२३:४० पर HyperNeutrino

@AlexL। यह uसशर्त रूप से आउटपुट करता है
user41805

ओह। मैं भ्रमित हो गया क्योंकि स्पष्टीकरण कहता है कि यह sसशर्त रूप से आउटपुट करता है; क्या आप स्पष्टता के लिए इसे ठीक कर सकते हैं? वैसे भी अच्छा जवाब।
हाइपरन्यूट्रिनो 13

If input is empty (ie false), output `s`.मुझे लगता है कि यह वह हिस्सा है जिसे एलेक्स एल मिला।
आउटगोल्फ

@AlexL। मैंने गलती पर ध्यान दिया, मैंने इसे अभी संपादित किया है!
1541 बजे user41805

1

हास्केल, जावास्क्रिप्ट, पायथन, 115 बाइट्स

q=1//1#1;f True="waar";f False="false";a//b=0;a#b=0{-
1//1;f=lambda x:"wahr"if x else"falsch";"""
f=x=>x+[]//"""#-}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.