Kurzusok
/
F#
F#
/
Feladatok
/
Patyolat tiszta
Patyolat tiszta

Patyolat tiszta

Tanulófeladat

Bevezetés

Az F# char típusa egy 16 bites érték, amely a szöveg legkisebb címezhető egységeit reprezentálja, és alapértelmezés szerint nem módosítható.

A char értékek literálként adhatók meg szimpla idézőjelek között:

let ch = 'A'
// => val ch: char = 'A'

A string karakterek sorozata.

Egy adott char a stringből (nulla alapú) indexeléssel kérhető le:

"Exercism"[4] //  =>  'c'

Ha végigmegyünk egy stringen, minden lépésben egy char-t kapunk.

A következő példa a kényelem kedvéért egy magasabb rendű függvényt és egy névtelen függvényt használ. Ezekkel a tanterv későbbi részében foglalkozunk részletesen, most azonban lényegében egy tömör módot adnak arra, hogy ciklust írjunk egy string karakterei fölött.

Seq.map (fun c -> c, int c) "F#"  //  =>  [('F', 70); ('#', 35)]

Ahogy fentebb látható, egy char átalakítható az int értékévé. Ez más írásrendszereknél is működik (legalábbis néha):

Seq.map (fun c -> c, int c) "東京"  //  =>  [('東', 26481); ('京', 20140)]

A karakterek összehasonlításához a mögöttes Int16-ot használja:

'A' < 'D'  // =>  true

Ezenkívül egy int is átalakítható char értékké:

char 77  // => 'M'

A System.Char könyvtár tartalmazza a .NET nyelvtől elvárható metódusok teljes készletét, például a nagybetűssé és kisbetűssé alakítást:

'a' |> System.Char.ToUpper  // =>  'A'

'Q' |> System.Char.ToLower  // =>  'q'

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óneveket.

A 6 részfeladatban fokozatosan építed fel a transform függvényt, amely egyetlen karaktert alakít át, és a clean függvényt, amely stringeket alakít át.

Egy érvényes azonosító nulla vagy több betűből, aláhúzásjelből, kötőjelből, kérdőjelből és emojiból áll.

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

1. Cseréld a kötőjeleket aláhúzásjelekre

Valósítsd meg a transform függvényt úgy, hogy a kötőjeleket aláhúzásjelre cserélje.

transform '-'  // => "_"

2. Távolítsd el az összes whitespace-t

Távolítsd el az összes whitespace karaktert. Ebbe beletartozik a szöveg elején és végén lévő whitespace is.

transform ' '  // => ""

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

Módosítsd a transform függvényt, hogy a camelCase-t kebab-case formátumra alakítsa

transform 'D'  // => "-d"

4. Hagyd ki a számjegyeket

Módosítsd a transform függvényt, hogy elhagyja a számjegy karaktereket.

transform '7'  // => ""

5. Cseréld a görög kisbetűket kérdőjelekre

Módosítsd a transform függvényt, hogy a „α” és „ω” közötti görög betűket lecserélje.

transform 'β' // => "?"

6. Vond össze ezeket a műveleteket, hogy egy stringen működjenek

Valósítsd meg a clean függvényt, hogy ezeket a műveleteket egy teljes stringre alkalmazza.

A szabályokon kívül eső karaktereket változatlanul kell átengedni.

clean "  a2b Cd-ω😀  " //  => "ab-cd_?😀"

String összeállítása karakterekből

Ezt a témát a tanterv későbbi részében részletesen is tárgyaljuk.

Egyelőre hasznos lehet tudni, hogy létezik egy magasabb rendű függvény, a String.collect, amely char-ok gyűjteményét alakítja stringgé egy általad megadott függvény segítségével.

let transform ch = $"{ch}_"
String.collect transform "abc"  // =>  "a_b_c_"
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
F# Exercism

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

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