> Input
> Input
>> 1²
>> (3]
>> 1%L
>> L=2
>> Each 5 4
>> Each 6 7
>> L⋅R
>> Each 9 4 8
> {0}
>> {10}
>> 12∖11
>> Output 13
इसे ऑनलाइन आज़माएं!
सभी संभव समाधान का एक सेट लौटाता है, और खाली सेट (यानी ∅) जब कोई समाधान मौजूद नहीं है।
यह काम किस प्रकार करता है
अप्रत्याशित रूप से, यह ज्यादातर अन्य उत्तरों के लिए लगभग समान रूप से काम करता है: यह संख्याओं की एक सूची बनाता है और तर्क के साथ उलटा मापांक के लिए प्रत्येक की जांच करता है।
यदि आप किस तरह से फुसफुसाते हैं, तो प्रोग्रामर संरचना कैसे काम करती है, बेझिझक आगे क्षैतिज रेखा पर छोड़ें। यदि नहीं: अनिवार्य रूप से, व्हिस्पर एक लाइन-बाय-लाइन संदर्भ प्रणाली पर काम करता है, जो अंतिम लाइन पर शुरू होता है। प्रत्येक पंक्ति को दो विकल्पों में से एक के रूप में वर्गीकृत किया गया है। या तो यह एक निलाद रेखा है , या यह एक परिचालक रेखा है ।
निलाद रेखाएँ शुरू होती हैं >, जैसे कि > Inputया > {0}उस रेखा पर दर्शाया गया सटीक मान लौटाएं या > {0}सेट लौटाएँ{ 0 }। > InputSTDIN की अगली पंक्ति लौटाता है, यदि संभव हो तो मूल्यांकन किया जाता है।
ऑपरेटर लाइनें शुरू होती हैं >>, जैसे कि >> 1²या >> (3]एक ऑपरेटर को एक या अधिक मानों पर चलाना। यहां, उपयोग किए गए नंबर उन स्पष्ट संख्याओं का संदर्भ नहीं देते हैं, इसके बजाय वे उस रेखा पर मूल्य का संदर्भ देते हैं। उदाहरण के लिए, ²वर्ग कमांड है (n → n2), इसलिए >> 1²मान वापस नहीं करता है12इसके बजाय, यह लाइन 1 का वर्ग लौटाता है , जो इस मामले में, पहला इनपुट है।
आमतौर पर, ऑपरेटर लाइनें केवल संदर्भ के रूप में संख्याओं का उपयोग करके काम करती हैं, फिर भी आपने लाइनों >> L=2और पर ध्यान दिया हो सकता है >> L⋅R। इन दो मूल्यों, Lऔर R, Eachबयानों के साथ संयोजन में उपयोग किया जाता है । Eachबयान दो या तीन तर्क लेकर काम करते हैं, फिर से संख्यात्मक संदर्भ के रूप में। पहला तर्क (जैसे 5) एक फ़ंक्शन का उपयोग किए गए ऑपरेटर लाइन का एक संदर्भ है, और बाकी तर्क एरे हैं। हम तो सरणी, पर समारोह पुनरावृति जहां LऔरR समारोह में सरणियों में वर्तमान तत्व (रों) प्रतिनिधित्व करते हैं अधिक दोहराया जा रहा है। उदाहरण के तौर पे:
चलो ए = [ १ , २ , ३ , ४ ], बी = [ ४ , ३ , २ , १ ] तथा च( एक्स , वाई) = x + य। यह मानते हुए कि हम निम्नलिखित कोड चला रहे हैं:
> [1, 2, 3, 4]
> [4, 3, 2, 1]
>> L+R
>> Each 3 1 2
हम तब कैसे Eachकाम करते हैं का एक प्रदर्शन मिलता है । सबसे पहले, दो सरणियों के साथ काम करते समय, हम उन्हें बनाने के लिए ज़िप करते हैंसी= [ ( १ , ४ ) , ( २ , ३ ) , ( ३ , २ ) , ( ४ , १ ) ] फिर नक्शा च( एक्स ,वाई) प्रत्येक जोड़ी पर, हमारे अंतिम सरणी का गठन डी = [ एफ( 1 , 4 ) , एफ( २ , ३ ) , च( 3 , 2 ) , एफ( ४ , १ ) ] = [ ५ , ५ , ५ , ५ ]
इसे ऑनलाइन आज़माएं!
यह कोड कैसे काम करता है
फुसफुसाते हुए काम करने के लिए काउंटर-सहजता से काम करना, हम पहले दो पंक्तियों से शुरू करते हैं:
> Input
> Input
यह हमारे दो इनपुट एकत्र करता है, जो कहता है एक्स तथा y, और उन्हें क्रमशः 1 और 2 लाइनों में संग्रहीत करता है । हम तो स्टोर करते हैंएक्स2लाइन 3 पर और एक सीमा बनाएँए : = [ १ । । । एक्स2]लाइन 4 पर । अगला, हम अनुभाग पर जाते हैं
>> 1%L
>> L=2
>> Each 5 4
>> Each 6 7
पहली बात यह है यहाँ निष्पादित लाइन है 7 , >> Each 5 4है, जो लाइन iterates 5 लाइन पर 4 । इससे सरणी उत्पन्न होती हैबी : = [ मैं%एक्स|मैं ∈ ए ], कहाँ पे ए%खके मापांक के रूप में परिभाषित किया गया हैए तथा ख।
हम तो लाइन पर अमल 8 , >> Each 6 7है, जो लाइन iterates 6 से अधिकबी, एक सरणी उपज सी: = [ ( i)%x ) = य|मैं ∈ ए ]।
इनपुट्स के लिए x = 5 , y= २, हमारे पास है एक = [ 1 , 2 , 3 , । । । , 23 , 24 , 25 ], बी = [ 0 , 1 , 2 , 1 , 0 , 5 , 5 , । । । , 5 , 5 ] तथा सी= [ 0 , 0 , 1 , 0 , 0 , । । । , 0 , 0 ]
हम फिर नीचे कूद पड़े
>> L⋅R
>> Each 9 4 8
जो हमारे देशद्रोही Eachकथन का उदाहरण है । इधर, हमारे समारोह लाइन है 9 यानी >> L⋅Rऔर हमारे दो सरणियों हैंए तथा सी। हम प्रत्येक तत्व को गुणा करते हैंए के साथ यह इसी तत्व में है सी, जो एक सरणी देता है, इ, जहां प्रत्येक तत्व निम्नलिखित संबंध से काम करता है:
इमैं= { ०एमैंसीमैं= 0सीमैं= 1
फिर हम एक सरणी के साथ समाप्त होते हैं 0s और व्युत्क्रम प्रतिरूप एक्स तथा y। को हटाने के लिए0s, हम इस सरणी को एक सेट ( >> {10}) में बदलते हैं, फिर इस सेट और के बीच के अंतर को लेते हैं{ 0 }, उपज, फिर उत्पादन, हमारे अंतिम परिणाम।