Kurzusok
/
Elm
Elm
/
Feladatok
/
Patyolat tiszta
Patyolat tiszta

Patyolat tiszta

Tanulófeladat

Bevezetés

Stringek

A karakterek és a stringek alkotják az Elm szöveges ábrázolásának alapját. A stringek karakterek listájaként foghatók fel, és a legtöbb List függvénynek megvan a megfelelője a String modulban.

Karakterek

A Char típus egyetlen Unicode-karaktert jelöl egyszeres idézőjelek között, például 'a'. A Char modul predikátumfüggvényeket (Char -> Bool) kínál a karakter tulajdonságainak vizsgálatához: isUpper, isLower, isAlpha és isAlphaNum. A modul emellett függvényeket kínál egy karakter átalakításához: toUpper, toLower, toLocaleUpper, toLocaleLower, valamint a numerikus Unicode-értékével (Int) való oda-vissza alakításhoz a toCode és fromCode segítségével.

Stringek

A String típus beépített ábrázolást nyújt a hatékony stringkezeléshez, és bármilyen Unicode-karakterekből álló sorozatot reprezentálhat, például "this is an Elm string." A többsoros stringeket három kettős idézőjel jelöli, és tartalmazhatnak escapeletlen idézőjeleket és sortöréseket.

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

String-függvények

A String modul tartalmazza az összes függvényt, amelyet az alábbi táblázat összefoglal. Néhány a leggyakrabban használt függvények közül:

cons : Char -> String -> String egy karaktert fűz a string elejére.

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

(++): String -> String -> String összefűz két stringet.

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

split : String -> String -> List String felbont egy stringet stringek listájára a megadott elválasztónál.

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

join : String -> List String -> String összefűz egy stringlistát a megadott elválasztóval.

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

replace : String -> String -> String -> String lecseréli egy adott részstring összes előfordulását.

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

length : String -> Int visszaadja a karakterek számát egy stringben.

length "Hello world." 
    --> 12

toInt : String -> Maybe Int megpróbálja átalakítani a stringet Just Int típusúvá, és Nothing értéket ad vissza a nem megfelelően formázott stringek esetén.

toInt "-42" 
    --> Just -42

contains : String -> String -> Bool ellenőrzi, hogy a második string tartalmazza-e az elsőt.

contains "the" "theory" 
    --> True

map : (Char -> Char) -> String -> String egy adott függvényt alkalmaz a string minden Char karakterére. Vedd figyelembe, hogy a megadott függvénynek Char-ból Char-ba kell leképeznie.

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

Az összes String-függvény:

Kezelés Részstringek Ellenőrzés Átalakítás Magasabb rendű
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

Utasítások

Ebben a feladatban segédfüggvények egy részét valósítod meg, hogy segíts egy fejlesztőnek megtisztítani az azonosítók neveit.

Az 5 részfeladatban fokozatosan építed fel a clean függvényt. Egy érvényes azonosító nulla vagy több betűből és alulvonásból áll.

Ha üres stringet adsz át a clean függvénynek, akkor annak üres stringet kell visszaadnia.

1. A szóközöket cseréld alulvonásra

Valósítsd meg a clean1 függvényt, amely a szóközöket alulvonásra cseréli. Ez a kezdő és a záró szóközökre is érvényes.

clean1 "my   Id"
    --> "my___Id"

2. A vezérlőkaraktereket cseréld a nagybetűs „[CTRL]” stringre

Valósítsd meg a clean2 függvényt, amely mindent megtesz, amit az előző függvény, és a gyakori vezérlőkaraktereket (\n, \t és \r ) a "[CTRL]" stringre cseréli.

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

3. Alakítsd át a kebab-case-t camelCase-vá

Valósítsd meg a clean3 függvényt, amely mindent megtesz, amit az előző függvény, és átalakítja a kebab-case-t camelCase-vá.

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

4. A számjegyek elhagyása

Valósítsd meg a clean4 függvényt, amely mindent megtesz, amit az előző függvény, és elhagyja az összes számjegyet.

clean4 "123"
    --> ""

5. A görög kisbetűk elhagyása

Végül valósítsd meg a clean függvényt, amely mindent megtesz, amit az előző függvény, és elhagyja a „α” és „ω” közötti görög betűket.

clean "My Οβιεγτ Finder"
    --> "My_Ο_Finder"
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Elm Exercism

Készen állsz elkezdeni a(z) Patyolat tiszta feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Elm nyelvet 28 fogalom110 feladat segítségével, valódi emberi mentorálással, mindez ingyen.