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.
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.
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.
"""
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"
| 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 |
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.
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"
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",
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 "à-ḃç"
--> "àḂç"
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"
--> ""
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"
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.