कई लाइनों पर एक समारोह बनाना


9

मैं कई लाइनों पर एक फ़ंक्शन बनाने का प्रयास कर रहा हूं।

चुनौती के पैरामीटर:

  1. समारोह रिटर्न 'बर्बर'
  2. प्रति पंक्ति केवल 2 वर्ण
  3. अधिकतम 40 लाइनें। मैं अपने कार्य को घोषित करने के लिए एक वसा तीर का उपयोग करने का प्रयास करता रहता हूं, लेकिन यदि आपके पास उन्हें जुड़ा नहीं है तो वसा तीर काम नहीं करता है।

चुनौती का स्रोत: https://www.codewars.com/kata/multi-line-task-plus-plus-hello-world

मेरा वर्तमान काम:

f=
(
)=>

'\
b\
a\
r\
b\
a\
r\
i\
a\
n\
s\
'

यह काम करता है, लेकिन ') =>' 3 वर्ण लंबा है। मैं वास्तव में सिर्फ यह जानना चाहता हूं कि किसी रचना के निर्माण को कैसे बढ़ाया जा सकता है। मुझे इस पर कहीं भी कोई जानकारी नहीं मिल सकती क्योंकि यह स्पष्ट रूप से बहुत व्यावहारिक नहीं है।



2
PPCG में आपका स्वागत है! दुर्भाग्य से, इस चुनौती का एक उद्देश्य जीतने वाला मानदंड नहीं है, और मैं इस चुनौती को सुधारने के लिए मतदान कर रहा हूं। भविष्य में, कृपया पोस्ट करने से पहले अपने प्रश्न पर प्रतिक्रिया प्राप्त करने के लिए सैंडबॉक्स का उपयोग करें
FantaC

इसके अलावा, स्टैक ओवरफ्लो इसके लिए एक बेहतर जगह होगी, अगर अलग
फैंटसी

5
मुझे लगता है कि यह एक विशेष कोड चुनौती को हल करने के लिए सुझाव मांगने वाले प्रश्न के रूप में ठीक है और फिर से खोलने के लिए मतदान किया है।
लकोनी

6
मैं लैकोनी से सहमत हूं कि यह निश्चित रूप से एसओ की तरह एक प्रोग्रामिंग प्रश्न पूछने के बजाय एक कोड लेआउट बाधा (यानी, प्रतिबंधित स्रोत) से निपटने के लिए सलाह मांग रहा है।
xnor

जवाबों:


7

यहाँ एक 38 लाइन समाधान है:

f=
[]
[
'\
m\
a\
p'
][
'\
c\
o\
n\
s\
t\
r\
u\
c\
t\
o\
r'
]`
r\
e\
t\
u\
r\
n\
'\
b\
a\
r\
b\
a\
r\
i\
a\
n\
'`

यह Functionकंस्ट्रक्टर का उपयोग करके एक फ़ंक्शन बनाता है , जिसे यह [].map.constructorसबस्क्रिप्ट नोटेशन का उपयोग करके एक्सेस करता है ([]['map']['constructor'] ) । यह वह विधि है जिसे JSFuck फ़ंक्शंस बनाने के लिए उपयोग करता है।


क्या आप []['map']['constructor']इसके बजाय पहुंच नहीं रहे हैं []['sum']['constructor']?
जोनाथन फ्रीच

जब तक मैं यह गलत नहीं पढ़ रहा हूँ, यह 'बर्बर' बहुवचन देता है?
कोल

1
@ प्रश्न प्रश्न का प्रयास - प्रश्न की समस्या कथन के विपरीत है - यह भी बहुवचन का उत्पादन करता है।
जोनाथन फ्रीच

> _ <खेद टाइपो
केवल

यह भी खूब रही! वहाँ भी कम लाइनों के लिए यह नीचे दाढ़ी करने के लिए कोई रास्ता नहीं है? बस इस बिंदु पर उत्सुक हूं क्योंकि यह पहला है जो मैंने निर्माणकर्ताओं के बारे में सुना है।
theNewfelll

14

35 लाइन्स

f=
0[
c=
'\
c\
o\
n\
s\
t\
r\
u\
c\
t\
o\
r'
][
c]
`
r\
e\
t\
u\
r\
n\
'\
b\
a\
r\
b\
a\
r\
i\
a\
n'
`

इसे ऑनलाइन आज़माएं!

इस तथ्य का उपयोग करता है कि 0एक संख्या है, का निर्माता 0है Numberऔर का निर्माता Numberहै Function

32 लाइनें

0[
c=
'\
c\
o\
n\
s\
t\
r\
u\
c\
t\
o\
r'
][
c]
`
f=
_\
=>
'\
b\
a\
r\
b\
a\
r\
i\
a\
n'
`(
)

इसे ऑनलाइन आज़माएं!

यह अनिवार्य रूप से चलता है

Function(`
f=
_=>
'barbarian'`)()

जो उपयोग करता है IIFE संरचना । जोड़ा गया बोनस यह है कि हम लाइन की संख्या को कम करने के लिए फ़ंक्शन बॉडी में कुछ हिस्सों को लाइन-ब्रेक कर सकते हैं।

24 लाइनें

f=
''
[
'\
t\
r\
i\
m'
][
'\
b\
i\
n\
d'
]`
b\
a\
r\
b\
a\
r\
i\
a\
n`

इसे ऑनलाइन आज़माएं!

इनलाइन संस्करण:

f=''['trim']['bind']`
barbarian`

चूँकि हम चाहते हैं कि हम एक स्ट्रिंग लौटाएँ, हम एक स्ट्रिंग के साथ बंधे एक स्ट्रिंग विधि से दूर हो सकते हैं। का उपयोग करके trim, हम एक शुरुआत न्यूलाइन को भी सुरक्षित रूप से छोड़ सकते हैं।

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