जोल्फ में गोल्फ के लिए टिप्स


12

जोल्फ @ C'O'Bural द्वारा बनाई गई एक प्रक्रियात्मक गोल्फिंग भाषा है।

जोल्फ में गोल्फ के लिए आपके पास क्या सुझाव हैं?

कृपया प्रति उत्तर एक टिप पोस्ट करें।

ये युक्तियां कम से कम कुछ हद तक जोल्फ के लिए विशिष्ट होनी चाहिए, उदाहरण के लिए टिप्पणियां हटाना एक उत्तर है, लेकिन बहुत अच्छा नहीं है।


साइट पर आपका स्वागत है, कृपया अधिक जानकारी के लिए पेज और टूर पेज कैसे पूछें पढ़ें ।
R

जवाबों:


4

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

यदि किसी अजीब कारण से जोल्फ़ पर्याप्त रूप से गोल्फ नहीं खेल रहा है, या बस सामना नहीं कर सकता है, तो यह जावास्क्रिप्ट eval का उपयोग करने के लिए हो सकता है। यह दो में से एक तरीके से हो सकता है।

1. डिजाइन तैयार किया

अंदर कुछ भी $...$शाब्दिक रूप से जेएस ट्रांसप्लीकेशन के लिए किया जाता है। उदाहरण के लिए, +3$~$5ट्रांसपाइल्स को add(3, ~5)। तुल्य, +3:~5

2. अरैल का अर्क

आप Jolf में JS सरणियों का उपयोग कर सकते हैं! अधिकतर। यह एक बग की तरह है, लेकिन मैं इसे ठीक करने नहीं जा रहा हूं। उदाहरण के लिए:

u[3*5,5/6,(3+4)/5]

ट्रांसपाइल्स:

sum([2 * 3, 5 / 3, (3 + 4) / 5]);

1
अगर किसी अजीब कारण के लिए जोल्फ काफी गोल्फ खेल रहा है (...?)
एरिक द आउटगलर

@EriktheOutgolfer **
कॉनर ओ'ब्रायन

7

अपने ऑटो-असाइनिंग वेरिएबल्स को जानें!

जोल्फ के पास "ऑटो असाइन" वेरिएबल्स के कई तरीके हैं। मानक एक है γ, जो अगले अभिव्यक्ति का मूल्य लेता है। Βएक ही बात है, लेकिन अगली अभिव्यक्ति को एक संख्या में परिवर्तित करता है।

इसके अलावा, ζ(zeta) एक वैरिएबल है जिसे इनिशियलाइज़ किया गया है -1/12(अनुमान क्यों), और इसे Ζ(Zeta) के साथ फिर से असाइन किया जा सकता है ।

उदाहरण के लिए, मान लें कि आप अपने आप में Iएक ऑपरेशन के लिए (इनपुट स्ट्रिंग) की तुलना करना चाहते हैं । अभी के लिए, आइए देखें कि क्या है I + I = reverse(I + I)। इसे पारंपरिक रूप से लिखा गया है:

=+II_+II

लेकिन यह नीचे गोल्फ हो सकता है:

=γ+II_γ

क्या आपका -1/12 ज़ेटा को स्ट्रिंग थ्योरी के साथ क्या करना है? मुझे हर प्राकृतिक संख्या को जोड़ने और -1/12 प्राप्त करने का एक तरीका पता है
दीपडपूल

1
@GheyPhistor कौन सा स्ट्रिंग सिद्धांत? लेकिन हाँ, यह है कि प्राकृतिक संख्या से अधिक जेट कार्य -1/12 है।
कॉनर ओ'ब्रायन

6

उपयोग @

@एक ऐसा कमांड है जो अगले कैरेक्टर को सोर्स कोड में लेता है और उस कैरेक्टर के कोड पॉइंट को वापस करता है। (उदाहरण के लिए, @X88 रिटर्न।) यह अक्सर बहुत उपयोगी होता है क्योंकि आप दो बाइट्स में 0 और 255 के बीच किसी भी संख्या को व्यक्त कर सकते हैं।


"100 और 255 के बीच"
लीक नून

@KennyLau इन जोल्फ, 10वास्तव में संख्या 1और संख्या 0नहीं है 10, इसलिए यह 10-255 की तरह अधिक है।
एक स्पेगेटो

मैं देख रहा हूँ, धन्यवाद ..
लीक

4

स्रोत पढ़ें

अभी के अनुसार, बहुत सारी अनजानी चीजें हैं - mउनमें से रहस्यमय मॉड्यूल, जिसमें बहुत सारे बिलिन हैं। हालांकि, वे स्रोत में मौजूद हैं, और जब आप इसे लटका देते हैं, तो इसे पढ़ना वास्तव में कठिन नहीं है, इसलिए स्रोत को पढ़ें।


1
mYsterious mएथलीट मॉड्यूल।
कॉनर ओ'ब्रायन

1
module। (6 और जाने के लिए ...)
लीक नून

2

कार्य क्षमता बढ़ाएँ

हर फंक्शन में एक एरिटी होती है। उदाहरण के लिए, 2 +की एक समता है। यदि आप 5 तत्वों को जोड़ना (कहना) चाहते हैं, तो आप 5 + s ... या का उपयोग कर सकते हैं । विशेष रूप से:+θ12345

  • θ समारोह के 3 से arrases।
  • माता-पिता के कार्य की 3. से *+~θ345678बढ़ जाती है (इसलिए 3 से बढ़ जाती है *)
  • M 2 से फ़ंक्शन की arity बढ़ाता है।
  • ~M माता-पिता के कार्य की 2 से बढ़ जाती है।
  • ; 1 से फ़ंक्शन की arity बढ़ाता है।
  • ~; 1 से माता-पिता के कार्य की गंभीरता को बढ़ाता है।
  • η 1 से फ़ंक्शन की arity कम हो जाती है।
  • 1 से पैरेंट फंक्शन की एरिटी घट जाती है।
  • \xad अगले चरित्र के चारकोल में पैरेंट फंक्शन की समता सेट करता है।

*+~θओवर का क्या फायदा *θ+?
user253751

@immibis उस मामले में नहीं है, यह केवल उदाहरण था। जोल्फ में कुछ कार्य हैं जो पार्स होने पर दो कार्य करते हैं। फिर, शीर्ष फ़ंक्शन के एरिटी तक पहुंचने का एकमात्र तरीका उपयोग कर रहा है ~<char>
कॉनर ओ'ब्रायन

2

निहित इनपुट का लाभ उठाएं

यदि किसी फ़ंक्शन में पर्याप्त तर्क नहीं हैं, तो वह शेष तर्कों के लिए इनपुट को देखेगा। उदाहरण के लिए:

+uz

को प्रेषित करेगा:

add(sum(unaryRange(x)), x)

इसके बराबर है

+uzxx

1

oमूल्यों को संग्रहीत करने के लिए उपयोग करें

अन्य भाषाओं में आसान / लघु संदर्भ के लिए चर कैसे असाइन किए जा सकते हैं, इसी तरह, जोल्फ के पास है o

उदाहरण के लिए, oThxइनपुट प्लस 1 प्रिंट करता है।

यह एक बेकार उदाहरण है, लेकिन जब अभिव्यक्ति की तुलना में अधिक जटिल है hx, तो यह कुछ गंभीर बाईटेज को बचा सकता है।

इसके अलावा, v"var name"<val>बहु-चर चर नाम के लिए अनुमति देता है, और V"var name"दायरे से एक चर प्राप्त करता है।

मुझे यह समझाने के लिए, और पिछली सजा देने के लिए कोनोर को धन्यवाद।


यह भी ध्यान दें कि v"var name"<val>बहु-चर चर नाम की अनुमति देता है, और V"var name"गुंजाइश से एक चर प्राप्त करता है।
कॉनर ओ'ब्रायन

@ C @O'Bʀɪᴇɴ ओह, तो वे यही करते हैं। पद से जोड़ना।
R

2
इस टिप के लिए ओ
थैक्स

@ E @s theIʀᴋ यह oअसाइनमेंट वेरिएबल होने पर एक सजा थी
कॉनर ओ'ब्रायन

@ C @O'Bʀɪᴇɴ o, हाँ ...
R
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.