ट्रैक
/
Elm
Elm
/
अभ्यास
/
एकदम साफ़
एकदम साफ़

एकदम साफ़

सीखने का अभ्यास

परिचय

स्ट्रिंग

Elm में टेक्स्ट दिखाने का आधार अक्षर और स्ट्रिंग हैं। स्ट्रिंग को अक्षरों का ऐरे माना जा सकता है, और List के ज़्यादातर फंक्शन का समकक्ष String मॉड्यूल में मौजूद होता है।

अक्षर

Char टाइप एक अकेला यूनिकोड अक्षर दिखाता है, जिसे सिंगल कोट में लिखा जाता है, जैसे 'a'। Char मॉड्यूल में किसी अक्षर के गुण जाँचने के लिए प्रेडिकेट फंक्शन (Char -> Bool) मिलते हैं: isUpper, isLower, isAlpha और isAlphaNum इस मॉड्यूल में अक्षर को अपर केस या लोअर केस में बदलने वाले फंक्शन भी हैं: toUpper, toLower, toLocaleUpper, toLocaleLower, और साथ ही toCode तथा fromCode की मदद से अक्षर को उसकी संख्यात्मक यूनिकोड वैल्यू (Int) में बदलने और वहाँ से वापस बदलने वाले फंक्शन भी।

स्ट्रिंग

String टाइप में कुशल स्ट्रिंग संचालन के लिए पहले से मौजूद व्यवस्था है, और यह यूनिकोड अक्षरों के किसी भी क्रम को दिखा सकता है, जैसे "this is an Elm string." मल्टी-लाइन स्ट्रिंग तीन डबल कोट के बीच लिखी जाती है, और उसमें बिना एस्केप किए कोट तथा नई लाइनें हो सकती हैं।

"""
    This is a multiline string.
All line-breaks and whitespace,
are preserved. 
"""

स्ट्रिंग के फंक्शन

String मॉड्यूल में नीचे दी गई टेबल में बताए गए सभी फंक्शन मौजूद हैं। इनमें से सबसे ज़्यादा इस्तेमाल होने वाले कुछ फंक्शन ये हैं:

cons : Char -> String -> String स्ट्रिंग के शुरू में एक अक्षर जोड़ता है।

cons 'T' "he truth is out there" 
    --> "The truth is out there"

(++): String -> String -> String दो स्ट्रिंग को जोड़ता है।

"butter" ++ "fly" 
    --> "butterfly"

split : String -> String -> List String दी गई सेपरेटर पर स्ट्रिंग को स्ट्रिंग के ऐरे में तोड़ देता है।

split ";" "cat;dog;cow" 
    --> ["cat", "dog", "cow"]

join : String -> List String -> String स्ट्रिंग के ऐरे को दिए गए सेपरेटर के साथ जोड़ देता है।

join "a" ["H", "w", "ii", "n"] 
    --> "Hawaiian"

replace : String -> String -> String -> String दिए गए सबस्ट्रिंग की सभी जगहों को बदल देता है।

replace "Hello" "Goodbye cruel" "Hello world." 
    --> "Goodbye cruel world."

length : String -> Int किसी स्ट्रिंग में अक्षरों की संख्या लौटाता है।

length "Hello world." 
    --> 12

toInt : String -> Maybe Int किसी स्ट्रिंग को Just Int में बदलने की कोशिश करता है, और गलत तरीके से लिखी स्ट्रिंग के लिए Nothing लौटाता है।

toInt "-42" 
    --> Just -42

contains : String -> String -> Bool जाँचता है कि दूसरी स्ट्रिंग में पहली स्ट्रिंग मौजूद है या नहीं।

contains "the" "theory" 
    --> True

map : (Char -> Char) -> String -> String स्ट्रिंग के हर Char पर दिया गया फंक्शन लागू करता है। ध्यान दीजिए कि दिया गया फंक्शन Char से Char की ओर मैपिंग होना चाहिए।

map (\c -> if c == '/' then '.' else c) "a/b/c" 
    --> "a.b.c"

सभी स्ट्रिंग फंक्शन:

संचालन सबस्ट्रिंग जाँच बदलाव हायर ऑर्डर
reverse slice length toInt map
repeat left isEmpty fromInt filter
replace right contains toFloat foldl
append dropLeft startsWith fromFloat foldr
concat dropRight indexes toList any
split fromList all
join fromChar
words
lines
cons
uncons

निर्देश

इस अभ्यास में आप उपयोगी फंक्शनों का एक छोटा समूह बनाएँगे, जिनकी मदद से एक डेवलपर आइडेंटिफायर के नाम साफ कर सकता है।

इन 5 कार्यों में आप धीरे-धीरे clean फंक्शन बनाते जाएँगे। एक मान्य आइडेंटिफायर अक्षरों और अंडरस्कोर से बना होता है, और इनकी संख्या शून्य या उससे अधिक हो सकती है।

अगर clean फंक्शन को खाली स्ट्रिंग दी जाए, तो फंक्शन को भी खाली स्ट्रिंग लौटानी चाहिए।

1. स्पेस को अंडरस्कोर से बदलिए

कोई भी स्पेस अंडरस्कोर से बदलने के लिए clean1 फंक्शन बनाइए। यह शुरू और अंत में आने वाले स्पेस पर भी लागू होता है।

clean1 "my   Id"
    --> "my___Id"

2. कंट्रोल अक्षरों को बड़े अक्षरों वाली स्ट्रिंग "[CTRL]" से बदलिए

clean2 बनाइए, जो पिछले फंक्शन का सारा काम करे और साथ ही आम कंट्रोल अक्षरों (\n, \t और \r) को "[CTRL]" स्ट्रिंग से बदल दे।

clean2 "my\nId"
    --> "my[CTRL]Id",

3. कबाब-केस को कैमलकेस में बदलिए

clean3 बनाइए, जो पिछले फंक्शन का सारा काम करे और कबाब-केस को कैमलकेस में बदल दे।

clean3 "à-ḃç"
    --> "àḂç"

4. अंक छोड़िए

clean4 बनाइए, जो पिछले फंक्शन का सारा काम करे और सारे अंक छोड़ दे।

clean4 "123"
    --> ""

5. ग्रीक के छोटे अक्षरों को छोड़िए

अंत में clean बनाइए, जो पिछले फंक्शन का सारा काम करे और 'α' से 'ω' तक के सारे ग्रीक अक्षर छोड़ दे।

clean "My Οβιεγτ Finder"
    --> "My_Ο_Finder"
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Elm Exercism

एकदम साफ़ शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Elm को 28 कॉन्सेप्ट110 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।