चेडर में गोल्फ के लिए टिप्स


12

चेडर

Cheddar एक उच्च-स्तरीय, कार्यात्मक + वस्तु-उन्मुख प्रोग्रामिंग भाषा है जो हमारे उपयोगकर्ता डाउगाट द्वारा बनाई गई है जो प्रोग्रामिंग को आसान, तेज और अधिक सहज बनाने के लिए डिज़ाइन किया गया है।

चेडर में गोल्फिंग के लिए आपके पास क्या सामान्य सुझाव हैं? मैं उन विचारों की तलाश कर रहा हूं, जिन्हें समस्याओं पर लागू किया जा सकता है और जो कि चेडर के लिए कम से कम कुछ विशिष्ट हैं (जैसे "अनावश्यक व्हाट्सएप को हटा दें।" कोई जवाब नहीं है)।

जवाबों:


3

सुव्यवस्थित गुणों का उपयोग करें

यदि आप कभी भी एक समारोह में सिर्फ एक संपत्ति का उपयोग करें:

A->A.long.property(n).foo.bar

कुछ बाइट्स को बचाने के लिए आप फंक्शनल प्रॉपर्टीज़ का उपयोग कर सकते हैं:

@.long.property(n).foo.bar

आप के साथ फ़ंक्शन किए गए गुण में चर को संदर्भित कर सकते हैं $0


2

स्ट्रिंग अनुक्रमों के लिए स्ट्रिंग ऑपरेटर का उपयोग करें

मैं @"ऑपरेटर के बारे में बात कर रहा हूं जो अलग-अलग चीजें करता है, जिनमें से सभी तार के साथ सौदा करते हैं। इसके उपयोग में बहुत थोड़ा सा है लेकिन यह मेरे पसंदीदा उपयोगों में से एक है:

इस पर एक नजर डालिए:

@" [103, 111, 97, 116, 115] === "goats"

यह उपयोगी नहीं है लेकिन विपरीत है:

@"'goats' === [103, 111, 97, 116, 115]
'goats'.bytes // compare the above too

यह वर्णमाला उत्पन्न करने के लिए विशेष रूप से उपयोगी है :

65@"90    // Uppercase Alphabet
97@"122   // Lowercase Alphabet
65@"90+97@"122 // Both cases
String.letters // Compare 97@"122 to this

1

करी

कोई लाल करी नहीं (cur_। के बारे में आप क्या सोच रहे होंगे)। मेरा मतलब है कि इस प्रकार की करी:

a->b->

यदि आपके पास दो तर्कों को लेने वाला कोई कार्य है। यह करी से छोटा है:

(a,b)->
a->b->

नोट: यह केवल तभी छोटा होता है जब आपके पास दो तर्क होते हैं।


1

डिफ़ॉल्ट तर्कों का उपयोग करें

चेडर चर घोषित करना काफी बाइट-वेस्टर हो सकता है:

->{var a=b+1}

सौभाग्य से, आप चर बनाने के लिए फ़ंक्शन डिफ़ॉल्ट मानों का उपयोग (एब) कर सकते हैं:

b=a+1->b

यहां कुछ उदाहरण दिए गए हैं:

let f= (a,b=a+1)->b
f(5) // 6

let f= a=Math.rand()->a
f() // 0.8757450950797647

1

फंक्शनाइज्ड ऑपरेटर्स और बॉन्डिंग का इस्तेमाल करें

यह एक सरल है। यदि आपके पास ऐसा कुछ है:

i->1+i

या किसी भी इसी तरह के ऑपरेशन। आप कार्य कर रहे ऑपरेटरों + संबंध का उपयोग कर छोटा कर सकते हैं:

1&(+)

1

मैपिंग ऑपरेटर का उपयोग करें

=>यह पूर्वता के कारण आरएचएस को एलएचएस नक्शे, यह भी मतलब है कि आप सीमाओं के साथ इसका इस्तेमाल और कई बार इसका इस्तेमाल कर सकते हैं:

a=>f
(a).map(f)

इसके अतिरिक्त:

a=>f=>g           // This is equivilant to...
(a).map(f).map(g) // this
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.