एपीएल में, आप ट्रेक फ़ंक्शन लिख सकते हैं, जिन्हें ट्रेनें कहा जाता है । वे कैसे काम करते हैं इस चुनौती के लिए अप्रासंगिक है। ⍴
फ़ंक्शन के रूप में उनका उपयोग अलग-अलग तरीकों से किया जा सकता है :
⍴ -> ⍴
⍴⍴ -> ⍴⍴
⍴⍴⍴ -> ⍴⍴⍴
⍴⍴⍴⍴ -> ⍴(⍴⍴⍴)
⍴⍴⍴⍴⍴ -> ⍴⍴(⍴⍴⍴)
⍴⍴⍴⍴⍴⍴ -> ⍴(⍴⍴(⍴⍴⍴))
...
आदेश वही रहता है। प्रक्रिया यह है कि जब तक कड़ाई से 3 से अधिक कार्य होते हैं, तब तक अंतिम 3 फ़ंक्शन एक फ़ंक्शन में समूहीकृत होते हैं। यदि हम एक नेस्टेड ट्रेन से मिलते हैं, तो हम जारी रखने से पहले उस को छोटा कर देते हैं। इस प्रक्रिया को यहां लागू किया गया है ⍴⍴⍴⍴⍴⍴
:
Step 0: ⍴⍴⍴⍴⍴⍴
There are strictly more than 3 functions, repeat.
Step 1: ⍴⍴⍴(⍴⍴⍴)
There are strictly more than 3 functions, repeat.
Step 2: ⍴(⍴⍴(⍴⍴⍴))
There are 3 or less functions, we're done.
यहां एक ही प्रक्रिया लागू होती है ⍴⍴⍴(⍴⍴)⍴(⍴⍴⍴⍴(⍴⍴⍴))⍴⍴
:
Step 0: ⍴⍴⍴(⍴⍴)⍴(⍴⍴⍴⍴(⍴⍴⍴))⍴⍴
There are strictly more than 3 functions, repeat.
We have met a nested train, applying procedure to that first:
Step 0: ⍴⍴⍴⍴(⍴⍴⍴)
There are strictly more than 3 functions, repeat.
We have met a nested train, applying procedure to that first:
Step 0: ⍴⍴⍴
There are 3 or less functions, we're done.
Step 1: ⍴⍴(⍴⍴(⍴⍴⍴))
There are 3 or less functions, we're done.
Step 1: ⍴⍴⍴(⍴⍴)⍴((⍴⍴(⍴⍴(⍴⍴⍴)))⍴⍴)
There are strictly more than 3 functions, repeat.
We have met a nested train, applying procedure to that first:
Step 0: ⍴⍴
There are 3 or less functions, we're done.
Step 2: ⍴⍴⍴((⍴⍴)⍴((⍴⍴(⍴⍴(⍴⍴⍴)))⍴⍴))
There are strictly more than 3 functions, repeat.
Step 3: ⍴(⍴⍴((⍴⍴)⍴((⍴⍴(⍴⍴(⍴⍴⍴)))⍴⍴)))
There are 3 functions or less, we're done.
इनपुट
इस चुनौती के लिए, इनपुट को सरल बनाया जाएगा। इसका मतलब है कि आप कोष्ठक खोलने और बंद करने के लिए 2 अलग-अलग चार्ट चुन सकते हैं और 1 चार्ट कार्य के लिए चुन सकते हैं, जो कोष्ठक के लिए चुने गए हैं। आपके द्वारा चुने गए चार्ट सुसंगत होने चाहिए। इनपुट खाली नहीं होगा, और इसमें बिना सामग्री (यानी ()
) वाले कोष्ठक नहीं होंगे ।
उत्पादन
फिर से, आप 3 विभिन्न वर्णों को चुन सकते हैं, 2 कोष्ठक के लिए और 1 कार्य के लिए। ध्यान दें कि उन्हें इनपुट के लिए चुने गए समान नहीं होना चाहिए, लेकिन उन्हें सुसंगत होना चाहिए।
नियम
- यदि कोष्ठक हैं जो केवल इनपुट में उनके भीतर एक फ़ंक्शन को संलग्न करते हैं, तो आपको उन्हें आउटपुट में निकालना होगा। आपके आउटपुट में अनावश्यक कोष्ठक नहीं हो सकते हैं (अर्थात केवल एक फ़ंक्शन को संलग्न करना, या संपूर्ण आउटपुट को संलग्न करना)।
- जब तक आपका समाधान इस चुनौती के लिए मान्य है, तब तक आपको यहां उपयोग किए गए एल्गोरिदम को लागू करने की आवश्यकता नहीं है।
- इनपुट और आउटपुट इनपुट और आउटपुट अनुभागों में बताए गए प्रारूप में तार हैं। इनपुट में कम से कम एक वर्ण होगा।
- मानक खामियों का उपयोग करना सख्त वर्जित है।
- यह कोड-गोल्फ है , इसलिए सबसे कम उत्तर जीतता है। हालाँकि, कोई स्वीकृत उत्तर नहीं होगा, क्योंकि यह एक प्रति-भाषा प्रतियोगिता है, और उन भाषाओं में उत्तर देने को प्रोत्साहित करने के लिए जिनमें यह कार्य अन्य भाषाओं में लिखे गए कोड की तुलना में अधिक लंबा कोड होगा।
परीक्षण के मामलों
यहाँ इस्तेमाल किए गए चार्ट हैं ()⍴
, आपको उन्हें अपने चुने हुए चार्ट के साथ बदलना चाहिए।
⍴ -> ⍴
⍴ -> ⍴
⍴⍴ -> ⍴⍴
⍴⍴⍴ -> ⍴⍴⍴
⍴⍴⍴⍴ -> ⍴(⍴⍴⍴)
⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴⍴ -> ⍴⍴(⍴⍴(⍴⍴(⍴⍴(⍴⍴(⍴⍴(⍴⍴⍴))))))
⍴⍴⍴⍴⍴(⍴⍴⍴)⍴⍴(⍴(⍴⍴⍴)⍴⍴⍴)⍴⍴⍴ -> ⍴(⍴⍴(⍴⍴((⍴⍴⍴)⍴(⍴(⍴(⍴⍴⍴)(⍴⍴⍴))(⍴⍴⍴)))))
(⍴⍴⍴)(⍴⍴⍴)(⍴⍴⍴) -> (⍴⍴⍴)(⍴⍴⍴)(⍴⍴⍴)
(⍴⍴⍴)(⍴⍴⍴)⍴⍴⍴ -> (⍴⍴⍴)(⍴⍴⍴)(⍴⍴⍴)
⍴⍴(⍴)⍴⍴ -> ⍴⍴(⍴⍴⍴)
((⍴⍴)) -> ⍴⍴
⍴⍴((⍴⍴))⍴⍴ -> ⍴⍴((⍴⍴)⍴⍴)
यह चुनौती सैंडबॉक्स में पोस्ट की गई है। यदि आपके पास आवश्यक विशेषाधिकार हैं, तो आप यहां सैंडबॉक्स पोस्ट देख सकते हैं ।